php gettext忽略语言环境

时间:2018-11-03 13:00:28

标签: php locale gettext

我有一个非常奇怪的问题:我正在使用称为“ Podcast Generator”(podcastgenerator.net)的播客解决方案,并将基于gettext的翻译安装在一台服务器上的效果很好(www.fegertest.de/podcasts),而在另一台服务器上,它根本不会翻译(www.feg-erlangen.de/podcasts)。

我已经检查了以下内容:

  • 在配置文件中正确配置了语言环境
  • gettext同时安装在两台服务器上
  • 浏览器的语言环境de_DE可用
  • 两个服务器上的php版本均为7
  • 在代码中正确设置了语言环境

$locale="de_DE";
if (!ini_get('safe_mode')) 
    putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain($domain, LOCALE_DIR);
bind_textdomain_codeset($domain, $encoding); //encoding
textdomain($domain);

我不知道还有什么原因……那里有什么想法吗?

1 个答案:

答案 0 :(得分:0)

必须在服务器上安装语言环境“ de_DE”。运行“ locale -a grep de_DE”进行验证。

此外,环境变量LC_ALL可能不是正确的设置。还要设置LANGLANGUAGELC_MESSAGES。请参阅http://git.savannah.gnu.org/cgit/gettext.git/tree/gettext-runtime/ABOUT-NLS,并阅读“ 1.2使用此程序包”一节,其中详细解释了各种环境变量的确切含义。