Страница 3 из 3

Re: Yii2-i18n-module (Перевод интерфейса)

Добавлено: 2017.04.17, 18:35
zelenin
Sergalas писал(а): 2017.04.17, 18:33 эти "Zelenin\yii\modules\I18n\models\Message" эти использовать ?
для чего? crud уже есть в модуле - подключите по инструкции в readme и используйте из админки.

Re: Yii2-i18n-module (Перевод интерфейса)

Добавлено: 2017.04.26, 11:47
Sergalas
Я тут заметил портак нет думайте сам. Если language', 'sourceLanguage' совпадают то перевод не работает.

Re: Yii2-i18n-module (Перевод интерфейса)

Добавлено: 2017.04.26, 11:52
zelenin
Sergalas писал(а): 2017.04.26, 11:47 Я тут заметил портак нет думайте сам. Если language', 'sourceLanguage' совпадают то перевод не работает.
так зачем переводит с английского на английский?
Переводит стандартный функционал yii - данный модуль только делает возможность удобнее добавлять переводы.

Re: Yii2-i18n-module (Перевод интерфейса)

Добавлено: 2017.04.26, 18:21
ElisDN
Sergalas писал(а): 2017.04.26, 11:47 Если language', 'sourceLanguage' совпадают то перевод не работает.
Для этого есть переключеталь forceTranslation у MessageSource.

Re: Yii2-i18n-module (Перевод интерфейса)

Добавлено: 2017.04.28, 16:55
Sergalas
ElisDN писал(а): 2017.04.26, 18:21
Sergalas писал(а): 2017.04.26, 11:47 Если language', 'sourceLanguage' совпадают то перевод не работает.
Для этого есть переключеталь forceTranslation у MessageSource.
У этого расширения ?

Re: Yii2-i18n-module (Перевод интерфейса)

Добавлено: 2017.04.28, 17:07
zelenin
Sergalas писал(а): 2017.04.28, 16:55
ElisDN писал(а): 2017.04.26, 18:21
Sergalas писал(а): 2017.04.26, 11:47 Если language', 'sourceLanguage' совпадают то перевод не работает.
Для этого есть переключеталь forceTranslation у MessageSource.
У этого расширения ?
у MessageSource

Re: Yii2-i18n-module (Перевод интерфейса)

Добавлено: 2017.08.10, 14:26
misha boo
шаблон advansed , стоит модуль от zelenin, при установке forceTranslation в true.

Код: Выделить всё

'i18n' => [
            'class' => Zelenin\yii\modules\I18n\components\I18N::className(),
            'languages' => ['en','ru','fr','de'],
            'translations' => [
                'forceTranslation' => 'true',
                '*' => [
                    'class' => yii\i18n\DbMessageSource::className(),
                    'forceTranslation' => 'true',
                    'on missingTranslation' => [Zelenin\yii\modules\I18n\Module::className(), 'missingTranslation']
                ], 
            ]
        ],
но при переводах - английський всьоравно - не переводиться, добавил в ./vendor/yiisoft/yii2/i18n/MessageSource.php в сабу "translate"

Код: Выделить всё

 public function translate($category, $message, $language)
    {
echo $this->forceTranslation ? 1 : 0 ;
        if ($this->forceTranslation || $language !== $this->sourceLanguage) {
            return $this->translateMessage($category, $message, $language);
        } else {
            return false;
        }
    }
при виборе на сайте англиського язика - виводит нули (((

Re: Yii2-i18n-module (Перевод интерфейса)

Добавлено: 2017.08.10, 16:21
misha boo
а если так

Код: Выделить всё

'i18n' => [
            'translations' => [
                'app*' => [
                    'class' => 'yii\i18n\DbMessageSource',
                    'forceTranslation' => true,
                    'sourceLanguage' => 'en-US',
                ],
            ],
        ],
то виводит 1

Re: Yii2-i18n-module (Перевод интерфейса)

Добавлено: 2017.08.10, 16:33
misha boo
разобрался, спасиба @zelenin проблема била в том что '*' != 'app*' - теперь работает

Re: Yii2-i18n-module (Перевод интерфейса)

Добавлено: 2018.09.28, 11:48
Sergalas
Заметил ошибку с миграцией у вас не удалятся внешний ключ т.е. с 37 строки стоит заменить код на

Код: Выделить всё

public function safeDown()
    {
        $i18n = Yii::$app->getI18n();
        if (!isset($i18n->sourceMessageTable) || !isset($i18n->messageTable)) {
            throw new InvalidConfigException('You should configure i18n component');
        }

        $this->dropForeignKey('fk_source_message_message', $i18n->messageTable);

        $this->dropTable($i18n->sourceMessageTable);
        $this->dropTable($i18n->messageTable);

        return true;
    }
добавив

Код: Выделить всё

$this->dropForeignKey('fk_source_message_message', $i18n->messageTable);