【问题标题】:PHP gettext returns input as result in HomesteadPHP gettext 在 Homestead 中返回输入作为结果
【发布时间】: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);

标签: php gettext homestead po


【解决方案1】:

语言环境没有安装在 Homestead 上。使用sudo locale-gen nl_NL修复它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 2022-07-29
    相关资源
    最近更新 更多