缓存多语言模板

发布于 2025-01-08 09:25:28 字数 436 浏览 3 评论 0原文

我的环境中有一个名为 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

青萝楚歌 2025-01-15 09:25:28

我认为您应该将模板作为 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...
}

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:

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

    //and so on...
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文