PHP gettext()-putenv和setlocale
我看到大多数示例都使用了以下内容:PHP gettext()-putenv和setlocale,php,localization,internationalization,locale,gettext,Php,Localization,Internationalization,Locale,Gettext,我看到大多数示例都使用了以下内容: putenv('LC_ALL=de_DE'); setlocale(LC_ALL, 'de_DE'); bindtextdomain("myPHPApp", "./locale"); echo gettext("Welcome to My PHP Application"); 如果我只想完成消息翻译,我已经尝试过只需要putenv,而不需要使用setlocale提供的函数,如时间、货币等 因此,忽略setlocale?似乎不包括它是安全的 如果区域设置为N
putenv('LC_ALL=de_DE');
setlocale(LC_ALL, 'de_DE');
bindtextdomain("myPHPApp", "./locale");
echo gettext("Welcome to My PHP Application");
如果我只想完成消息翻译,我已经尝试过只需要putenv
,而不需要使用setlocale
提供的函数,如时间、货币等
因此,忽略
setlocale
?似乎不包括它是安全的
如果区域设置为NULL或空字符串“”,则将设置区域设置名称
从与
以上类别,或来自“朗”
信息:不需要
当然,您可以执行setlocale(LC_ALL,”)代码>正如另一个答案所建议的,但这只会使其返回到上面一行中的环境变量设置putenv
实际上可以删除的是putenv
call。至少对我来说,以下片段仍然返回德语翻译:
putenv('LC_ALL=en_US');
setlocale(LC_ALL, 'de_DE');
bindtextdomain("myPHPApp", "./locale");
echo gettext("Welcome to My PHP Application");
使用setlocale
的另一个好处是检查系统中是否实际安装了给定的语言环境。例如:
if (false === setlocale(LC_ALL, $localeCode)) {
throw new LocaleNotSupportedException(sprintf('Locale "%s" is not installed in the system.', $localeCode));
}
echo gettext("Welcome to My PHP Application");
而且在绑定域之前也不需要设置区域设置。你也可以在以后的任何时候做