【发布时间】:2019-05-29 05:09:45
【问题描述】:
在我们公司的一个项目中,我们使用 gettext 来翻译文本。这已经工作了好几年,但现在我正在尝试在 Homestead 中运行该项目,除了 gettext 一切正常。例如,当使用 gettext('input_string') 时,它会返回 input_string。在我们的服务器和 MAMP 中,一切正常。可能是什么问题呢?我在 Apache 和 PHP 7.0 上运行项目(与服务器和 MAMP 相同)
区域设置的域是这样绑定的:
bindtextdomain('projectname', APPLICATION_PATH. DIRECTORY_SEPARATOR . 'locale');
textdomain('projectname');
bind_textdomain_codeset('projectname', 'UTF-8');
bindtextdomain 中的路径是正确的。文件结构为:
- locale
- en_US
- LC_MESSAGES
- projectname.mo
- projectname.po
- fr_FR
- LC_MESSAGES
- projectname.mo
- projectname.po
- nl_NL
- LC_MESSAGES
- projectname.mo
- projectname.po
- pt_PT
- LC_MESSAGES
- projectname.mo
- projectname.po
【问题讨论】:
-
似乎
gettext()找不到您的语言文件,因为它正在回显输入字符串。 -
@Anuga 我在原始问题中添加了语言文件的绑定和结构
-
语言文件夹中缺少子文件夹 =
LC_MESSAGES. -
哎呀对不起,它就在那里。只是忘了提。更新了我的问题。
-
你已经设置好了,
$lang = "en_US";,putenv("LC_ALL={$lang}");,setlocale(LC_ALL, $lang);?