下面是我在项目中使用的一些示例代码,用于根据当前语言自动呈现替代视图文件。这允许您将视图另存为
/views/[controller]/[lang]/[action].ctp
. 如果存在这样一个专门化的文件,它将被呈现,而不是标准视图。这应该很容易适应你的需要。
class AppController extends Controller {
public function render($action = null, $layout = null, $file = null) {
$lang = Configure::read('Config.language');
$ext = $this->ext;
$act = $action;
if (!$act) {
$act = $this->action;
}
$i18nFile = new File(VIEWS . $this->viewPath . DS . $lang . DS . $act . $ext);
if (!$file && $i18nFile->exists()) {
$file = $i18nFile->path;
}
return parent::render($action, $layout, $file);
}
}