2012-02-22 137 views
1

我在我的环境中有一个名为language.php的类,它处理语言检测并包含适当的语言文件及其所有变量。缓存多语言模板

当模板没有被缓存时,我通过APC缓存它,并将缓存条目发送给访问者。

但现在,当我试图让我的环境中使用多种语言,并且我从改变我的语言的en-USDE-DE然后回为en-US我仍然得到缓存德-DE模板。

是否有任何智能方法解决这个问题,我可以合作和详细说明?

编辑: 我解析/缓存功能:http://pastebin.com/PpHJ14Wv

回答

1

我认为你应该处理模板2个不同的模板(或尽可能多的语言,你会支持)。例如,您可以缓存template-en.html和template-de.html,而不是缓存template.html。

并使用url(example.com/en或example.com/de)或$ _SESSION ['lang']变量或类似的东西,以加载正确的缓存模板。

编辑

像这样:

public function parseTemplate($requestedTemplate, $lang) 
{ 
    $template = $requestedTemplate . '-' . $lang; 
    $filename = $this->templateDir . $template . '.php'; 

    //and so on... 
} 
+0

谢谢! - 听起来像是解决我的问题的伟大尝试。稍后再尝试,然后提供反馈。 – pila 2012-02-23 09:33:30