这是来自php manual的一小段代码
putenv('LC_ALL=zh_CN');
setlocale(LC_ALL, 'zh_CN');
bindtextdomain('domain', './locale');
textdomain('domain');
echo gettext('Hello');这将输出在domain.mo文件中定义的 Apache ,但问题是只要Apache正在运行,gettext()总是返回缓存的结果。
如果我将Hello的翻译更改为domain.mo中的您好,它仍然会输出您好你好。
但是,可以通过将bindtextdomain()和textdomain()的domain参数更改为新名称来修复此问题。比如从"domain"到"domain2"。但每次更新.mo文件时,编辑php文件真的很痛苦。
有没有更好的方法来做这件事,比如删除一些文件夹或者调用一些php函数来完成这项工作?这样我就可以为这个目的写一个小脚本。
发布于 2015-02-07 21:36:47
好的,在我的例子中,我需要通过执行php5.6-fpm-sp重新启动服务来重新启动phpfpm。
如果你使用的是php-fpm,你必须重新启动phpfpm才能清除gettext的缓存,重启apache2不起作用。
希望对别人是有用的。
https://stackoverflow.com/questions/13625659
复制相似问题