PHP Gettext不工作

PHP Gettext不工作,php,locale,gettext,Php,Locale,Gettext,这是我的/locale/fr/LC\u MESSAGES/MESSAGES.po文件: msgid "NO GOOD" msgstr "IT WORKED!" 用于生成.mo文件的命令: $ msgfmt -o locale/fr/LC_MESSAGES/messages.mo locale/fr/LC_MESSAGES/messages.po 我的PHP文件(出于测试目的,通过CLI以root用户身份运行) PHPInfo: GetText Support => enabled 你

这是我的
/locale/fr/LC\u MESSAGES/MESSAGES.po
文件:

msgid "NO GOOD"
msgstr "IT WORKED!"
用于生成.mo文件的命令:

$ msgfmt -o locale/fr/LC_MESSAGES/messages.mo locale/fr/LC_MESSAGES/messages.po
我的PHP文件(出于测试目的,通过CLI以root用户身份运行)

PHPInfo:

GetText Support => enabled

你知道为什么这可能不起作用吗?

结果表明,它不起作用的原因是我选择的区域设置必须是系统能够识别的区域设置


在我的例子中,
fr
不是有效的区域设置,我必须选择系统识别的
fr\u fr.UTF-8

结果表明,它不工作的原因是我选择的区域设置必须是系统识别的区域设置

在我的例子中,
fr
不是有效的区域设置,我必须选择系统识别的
fr\u fr.UTF-8

  • 确保支持该语言
  • 安装gettext并在php.ini中启用它
  • 检查采购订单的格式是否正确(应具有标题)
  • 确保mbstring.internalcoding设置为UTF-8()(在php.ini中取消utf8的注释)
  • 重新启动php和web服务器
  • 确保支持该语言
  • 安装gettext并在php.ini中启用它
  • 检查采购订单的格式是否正确(应具有标题)
  • 确保mbstring.internalcoding设置为UTF-8()(在php.ini中取消utf8的注释)
  • 重新启动php和web服务器

  • 提示在使用gettext时,请始终检查函数返回值。对于初学者,您需要使用
    bind\u textdomain\u codeset()
    指定MO文件的字符集。您还需要确保系统中安装了相应的区域设置文件(假设您使用的是基于Linux的服务器),并且该区域设置文件具有正确的字符集。查看本文了解更多详细信息:提示在使用gettext时,请始终检查函数返回值。对于初学者,您需要使用
    bind\u textdomain\u codeset()
    指定MO文件的字符集。您还需要确保系统中安装了相应的区域设置文件(假设您使用的是基于Linux的服务器),并且该区域设置文件具有正确的字符集。查看本文了解更多详细信息:仅供参考,如果指定的区域设置无法识别,
    setlocale()
    函数将返回
    false
    返回新的当前区域设置,如果您的平台上没有实现区域设置功能,指定的区域设置不存在或类别名称无效,则返回FALSE。
    仅供参考,如果您指定的区域设置无法识别,
    setlocale()
    函数将返回
    FALSE
    返回新的当前区域设置,如果您的平台上未实现区域设置功能,指定的区域设置不存在或类别名称无效,则返回FALSE。
    $ NO GOOD
    
    GetText Support => enabled