I asked this question on serverfault但我没有得到任何回复。我在这里试试......
我在家里的网络服务器上开发了一个网站。
当我修改翻译文件时,我必须重新启动Web服务器Apache。
/etc/init.d/httpd graceful
容易...
假设我的网站托管在共享主机上。
现在假设我需要修改翻译文件。
我无法重启服务器......
如何在此上下文中使用gettext
?
您是否允许重新启动服务器并且只选择graceful?
共享主机是否每天重启服务器一次以解决此类问题?
你如何处理这些限制?
答案 0 :(得分:5)
致电clearstatcache();
从*.po
转换为*.mo
答案 1 :(得分:2)
您可以重命名* .mo文件和gettext域以刷新gettext缓存而无需重新启动apache server。但在生产环境中,它不适合。
答案 2 :(得分:1)
gettext函数中的帖子提供了一些信息,可以在不重启apache的情况下使gettext工作:
答案 3 :(得分:0)
每当其中一个* .mo文件发生更改时,没有其他解决办法,只能粗暴强制每个* .mo文件的缓存未命中。换一个字符串?新的缓存时代!
我这样做是通过编写将所有* .mo文件复制到时间戳命名目录的中间件(时间戳是最新的* .mo文件的时间戳)并使用新的消息路径更新应用程序配置 - 如果是最新的时间戳实际上改变了,就是这样。因此,textdomains现在从完全不同的路径加载,这个最终设法杀死愚蠢的gettext缓存臭臭。