缓存多语言模板
我的环境中有一个名为 language.php 的类,它处理语言检测并包含正确的语言文件及其所有变量。
当模板尚未缓存时,我通过 APC 缓存它,并将缓存条目发送给访问者。
但现在,当我尝试使我的环境成为多语言时,我将语言从 en-US 更改为 de-DE,然后变回 en-美国我仍然得到缓存的de-DE模板。
对于这个问题,有什么我可以使用和详细阐述的智能方法吗?
编辑: 我的解析/缓存功能: http://pastebin.com/PpHJ14Wv
I have a class called language.php in my environment which handles the language detection and includes the proper language file with all it's variables.
When a template is not cached already, i cache it via APC and sent the cache entry to the visitor.
But now when i try to make my environment multilingual, and i change my languages from en-US to de-DE and then back to en-US i still get the cached de-DE template.
Are there any intelligent approaches to this problem that i can work with and elaborate?
EDIT:
My parsing/caching function: http://pastebin.com/PpHJ14Wv
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为您应该将模板作为 2 个不同的模板(或您要支持的多种语言)来处理。例如,您可以缓存 template-en.html 和 template-de.html,而不是缓存 template.html。
并使用 url(example.com/en 或 example.com/de)或 $_SESSION['lang'] 变量或类似的变量,以便加载正确的缓存模板。
编辑
像这样:
I think that you should handle the template as 2 different templates (or as many languages that you are going to support). Instead of caching a template.html, for instance, you could cache a template-en.html and a template-de.html.
And use the url (example.com/en or example.com/de) or a $_SESSION['lang'] variable or something like that, in order to load the proper cached template.
EDIT
like so: