如何在 yii2 上缓存数据库翻译
How to cache database translations on yii2
如何在 yii2 上缓存数据库翻译
我尝试了以下但没有成功
'i18n' => [
'class' => Zelenin\yii\modules\I18n\components\I18N::className(),
'languages' => ['en', 'ar', 'fr'],
'sourceMessageTable' => 'source_message',
'messageTable' => 'message',
'cache' => 'cache'
],
Yii documentation for i18n db messages 说 属性 cache
只有当 属性 cacheDuration
不为零时才有意义。我建议你设置这个值,所以;
'i18n' => [
'class' => Zelenin\yii\modules\I18n\components\I18N::className(),
'languages' => ['en', 'ar', 'fr'],
'sourceMessageTable' => 'source_message',
'messageTable' => 'message',
'cache' => 'cache',
'cacheDuration' => 3600
],
问题出在 Zelenin i18n 模块中。如果你查看 Module.php 文件,你可以看到:
$this->translations['*'] = [
'class' => DbMessageSource::className(),
'sourceMessageTable' => $this->sourceMessageTable,
'messageTable' => $this->messageTable,
'on missingTranslation' => $this->missingTranslationHandler
];
在 init()
方法中。此代码设置了 DbMessageSource 选项,并且没有任何关于缓存的选项。模块也没有任何缓存选项。
如果将此代码更改为:
$this->translations['*'] = [
'class' => DbMessageSource::className(),
'sourceMessageTable' => $this->sourceMessageTable,
'messageTable' => $this->messageTable,
'enableCaching' => true,
'cachingDuration' => 3600,
'on missingTranslation' => $this->missingTranslationHandler
];
缓存将起作用。一些 SELECT
消息将从调试列表中消失。
如何在 yii2 上缓存数据库翻译
我尝试了以下但没有成功
'i18n' => [
'class' => Zelenin\yii\modules\I18n\components\I18N::className(),
'languages' => ['en', 'ar', 'fr'],
'sourceMessageTable' => 'source_message',
'messageTable' => 'message',
'cache' => 'cache'
],
Yii documentation for i18n db messages 说 属性 cache
只有当 属性 cacheDuration
不为零时才有意义。我建议你设置这个值,所以;
'i18n' => [
'class' => Zelenin\yii\modules\I18n\components\I18N::className(),
'languages' => ['en', 'ar', 'fr'],
'sourceMessageTable' => 'source_message',
'messageTable' => 'message',
'cache' => 'cache',
'cacheDuration' => 3600
],
问题出在 Zelenin i18n 模块中。如果你查看 Module.php 文件,你可以看到:
$this->translations['*'] = [
'class' => DbMessageSource::className(),
'sourceMessageTable' => $this->sourceMessageTable,
'messageTable' => $this->messageTable,
'on missingTranslation' => $this->missingTranslationHandler
];
在 init()
方法中。此代码设置了 DbMessageSource 选项,并且没有任何关于缓存的选项。模块也没有任何缓存选项。
如果将此代码更改为:
$this->translations['*'] = [
'class' => DbMessageSource::className(),
'sourceMessageTable' => $this->sourceMessageTable,
'messageTable' => $this->messageTable,
'enableCaching' => true,
'cachingDuration' => 3600,
'on missingTranslation' => $this->missingTranslationHandler
];
缓存将起作用。一些 SELECT
消息将从调试列表中消失。