Кеширование многоязычного шаблона - PullRequest
1 голос
/ 23 февраля 2012

В моей среде есть класс language.php, который обрабатывает обнаружение языка и включает соответствующий языковой файл со всеми его переменными.

Когда шаблон еще не кешируется, я кеширую его через APC и отправляю запись в кеш посетителю.

Но теперь, когда я пытаюсь сделать свою среду многоязычной, и я меняю свои языки с en-US на de-DE , а затем обратно на en -US я все еще получаю кешированный de-DE шаблон.

Есть ли какие-нибудь разумные подходы к этой проблеме, с которыми я могу поработать и разработать?

EDIT: Моя функция разбора / кэширования: http://pastebin.com/PpHJ14Wv

1 Ответ

1 голос
/ 23 февраля 2012

Я думаю, что вы должны обрабатывать шаблон как 2 разных шаблона (или столько языков, которые вы собираетесь поддерживать).Например, вместо кэширования template.html вы можете кэшировать template-en.html и template-de.html.

и использовать URL-адрес (example.com/en или example.com/de).) или переменную $ _SESSION ['lang'] или что-то в этом роде, чтобы загрузить соответствующий кэшированный шаблон.

EDIT

примерно так:

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

    //and so on...
}
...