2

我在 serverfault 上问了这个问题,但没有得到任何回应。我在这里试试...

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

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

/etc/init.d/httpd graceful

简单的...

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

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

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

您如何gettext在这种情况下使用?

您是否允许仅使用优雅选项重新启动服务器?

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

您如何处理这些限制?

4

4 回答 4

6

称呼clearstatcache();

翻译 from *.poto之后*.mo

于 2013-09-23T06:51:22.030 回答
2

gettext 函数上的帖子有一些信息可以让 gettext 在不重新启动 apache 的情况下工作:

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

于 2010-02-01T15:50:15.080 回答
2

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

于 2012-02-06T08:10:39.323 回答
0

除了在每个 *.mo 文件中的一个发生更改时残酷地强制缓存未命中之外,没有其他解决方案。更改单个字符串?新的缓存时代!

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

于 2015-10-31T17:47:44.490 回答