有一些时候,会发现加入了翻译文件,无法翻译,
这个可能是你的controller重写了init(),方法,
1.没有集成fecmall的基类controller,譬如:@fecshop\app\apphtml5\modules\AppfrontController
可以看到init方法
public function init()
{
/**
* 如果模板路径没有配置,则配置模板路径
*/
if (!Yii::$service->page->theme->fecshopThemeDir) {
Yii::$service->page->theme->fecshopThemeDir = Yii::getAlias(CConfig::param('apphtml5BaseTheme'));
}
/**
* 如果layout文件没有配置,则配置layout文件
*/
if (!Yii::$service->page->theme->layoutFile) {
Yii::$service->page->theme->layoutFile = CConfig::param('apphtml5BaseLayoutName');
}
/*
* set i18n translate category.
*/
Yii::$service->page->translate->category = 'apphtml5';
/*
* 自定义Yii::$classMap,用于重写
*/
}
也就是这里设置Yii::$service->page->translate->category = 'apphtml5';
2.继承了基类controller,进行了init方法重写,但是没有执行parent::init()
,
譬如:
public function init()
{
if (Yii::$app->user->isGuest) {
Yii::$service->url->redirectByUrlKey('customer/account');
exit;
}
}
就会导致基类的controller没有执行,因此,需要改成
public function init()
{
if (Yii::$app->user->isGuest) {
Yii::$service->url->redirectByUrlKey('customer/account');
exit;
}
parent::init();
}
这样语言翻译文件的category
设置,就会在基类controller中执行。