您可以在 beforeRender 中更改文件的前缀:
Configure::write('Cache.viewPrefix', 'YOURPREFIX');
您可以从参数或会话中获取前缀(取决于您的应用程序)。我不明白为什么前缀没有用。每个页面的每种语言都有一个文件。类似于“eng_my_action”文件的东西。如果您只想保存 1 个文件并用用户语言翻译它是没有意义的。因为视图已经这样做了(只是数据的解析器)。
字体:
http://book.cakephp.org/2.0/en/core-libraries/helpers/cache.html#using-the-helper(寻找 2.3 版的新功能)
好吧,我将采样 awnser 给你理解:
public function beforeRender(){
$lang = isset($this->params["named"]["lang"]) ? $this->params["named"]["lang"] : "eng"; // verify if is the default language(eng) or is in params
if($this->Auth->user("lang")){
$lang = $this->Auth->user("lang"); // This is a example how to take the default language from a user. You need to change it to your app.
}
Configure::write('Cache.viewPrefix', $lang);
}