获取文本,不显示
我尝试使用以下代码加载我的 .mo 翻译,但它不起作用。我有 php gettext 分机。在我的 phpinfo() 中启用并安装了所有必需的语言环境。 我错过了什么吗?
$locale = "en_US";
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("messages", "./locale");
textdomain("messages");
我的 .mo 文件位于 ./locale/en_US/messages.mo
I'm trying to load my .mo translations using the following code, but it doesn't work. I have the php gettext ext. enabled in my phpinfo() and all the required locales are installed.
Did I miss anything?
$locale = "en_US";
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("messages", "./locale");
textdomain("messages");
My .mo file is located in ./locale/en_US/messages.mo
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
当apache线程加载.mo文件时,直到apache线程被回收后才会重新加载。因此,如果您更新 .mo 文件,并希望确保您的 php 使用新的 .mo 文件,您实际上需要重新启动 apache 或为 mo 文件使用不同的名称。
无论如何,我会设置 LANG 环境变量。
When an apache thread loads an .mo file, it will not reload it until the apache thread is recycled. So if you update the .mo file, and want to be sure that your php is using that new .mo file, you actually need to either restart apache or use a different name for the mo file.
Anyway, I would set the LANG environment variable.
您可能需要更改路径,使其成为绝对路径,而不是相对路径。
You probably need to change the path so that it is absolute, instead of relative.