你如何在服务器(Apache)上使用gettext无法重启?

时间:2010-02-01 15:47:00

标签: php apache gettext shared-hosting php-gettext

I asked this question on serverfault但我没有得到任何回复。我在这里试试......

我在家里的网络服务器上开发了一个网站。

当我修改翻译文件时,我必须重新启动Web服务器Apache。

/etc/init.d/httpd graceful

容易...

假设我的网站托管在共享主机上。

现在假设我需要修改翻译文件。

我无法重启服务器......

如何在此上下文中使用gettext

您是否允许重新启动服务器并且只选择graceful?

共享主机是否每天重启服务器一次以解决此类问题?

你如何处理这些限制?

4 个答案:

答案 0 :(得分:5)

致电clearstatcache();

*.po转换为*.mo

后的

答案 1 :(得分:2)

您可以重命名* .mo文件和gettext域以刷新gettext缓存而无需重新启动apache server。但在生产环境中,它不适合。

答案 2 :(得分:1)

gettext函数中的帖子提供了一些信息,可以在不重启apache的情况下使gettext工作:

http://www.php.net/manual/en/function.gettext.php#58310

答案 3 :(得分:0)

每当其中一个* .mo文件发生更改时,没有其他解决办法,只能粗暴强制每个* .mo文件的缓存未命中。换一个字符串?新的缓存时代!

我这样做是通过编写将所有* .mo文件复制到时间戳命名目录的中间件(时间戳是最新的* .mo文件的时间戳)并使用新的消息路径更新应用程序配置 - 如果是最新的时间戳实际上改变了,就是这样。因此,textdomains现在从完全不同的路径加载,这个最终设法杀死愚蠢的gettext缓存臭臭