我正在使用此功能设置网站的区域设置:
function set_locale($locale) { // ie. en, es
$language = $locale;
putenv("LANG=".$language);
setlocale(LC_ALL, $language);
$domain = "phd";
bindtextdomain($domain, "locale");
bind_textdomain_codeset($domain, 'UTF-8');
textdomain($domain);
} // end set_locale
Run Code Online (Sandbox Code Playgroud)
当有人访问该网站时,他们可以更改其区域设置.我想要做的是在网站的其他地方检索当前的语言环境.
我该怎么做?
Jer*_*via 39
您可以这样调用setlocale,它将返回当前本地.
$currentLocale = setlocale(LC_ALL, 0);
echo $currentLocale; //outputs C/en_US.UTF-8/C/C/C/C on my machine
Run Code Online (Sandbox Code Playgroud)
这是来自php.net的文档,由@JROB评论
现场
如果locale为"0",则不会影响区域设置,仅返回当前设置.
如果locale为NULL或空字符串"",则将根据与上述类别具有相同名称的环境变量的值或"LANG"设置区域设置名称.
如果locale是一个数组或后跟其他参数,则尝试将每个数组元素或参数设置为新的语言环境,直到成功为止.如果在不同系统上以不同名称知道语言环境或为可能不可用的语言环境提供回退,这将非常有用.
两年后的另一个答案!
您可以简单地用户Locale::getDefault()或locale_get_default()获取当前区域设置.
http://php.net/manual/en/locale.getdefault.php
| 归档时间: |
|
| 查看次数: |
36293 次 |
| 最近记录: |