2010-02-01 2 views
2

I asked this question on serverfault, но ответа я не получил. Я пробую здесь ...Как вы используете gettext на сервере (Apache), который нельзя перезапустить?

Я разработал сайт на своем веб-сервере у себя дома.

Когда я изменяю файлы перевода, я должен перезапустить веб-сервер Apache.

/etc/init.d/httpd graceful 

Easy ...

Предположим, что мой сайт размещен на виртуальном хостинге.

Предположим, что мне нужно изменить файлы перевода.

Я не могу перезагрузить сервер ...

Как использовать gettext в этом контексте?

Вы разрешаете перезагрузить сервер с опцией изящный только?

Хост-сервер общего доступа перезапускает сервер один раз в день, чтобы решить эту проблему?

Как вы работаете с такими ограничениями?

+2

checkout http://stackoverflow.com/a/13629035/245428, нет необходимости перезагружать apache или изменять домен. – xiaoyi

+0

Не могли бы вы отредактировать выбранный ответ, с которым вам помогли? – cvsguimaraes

ответ

2

Вы можете переименовать файл * .mo и ваш домен GetText промывать GetText кэша без перезапуска Apache сервер. Но в рабочей среде это непригодно.

5

вызов clearstatcache();

после выполнения перевода с *.po в *.mo

0

Там нет другого решения, чем жестоко заставлять промах кэша для каждого * .mo файл каждый раз, когда один из них изменяет. Изменить одну строку? Новая эра кэша!

Я делаю это в письменном виде промежуточные ПО, который копирует все * .mo файлы в метках имени каталог (отметка времени в том, что новейшем * .mo файла) и обновляет конфигурацию приложения с новым путем сообщения - если новейший временная метка фактически изменен, то есть. Таким образом, текстовые области теперь загружаются из совершенно разных путей, и это - это то, что, наконец, удается убить глупый кештекст gettext вонючий мертвый.