如何在PHP中获取当前的语言环境

时间:2015-04-22 03:39:11

标签: php locale

我想获得服务器的当前系统区域设置(比如windows 7 os)。这是为了确保不同的语言设置在PHP中使用不同的代码部分  但是,我找不到任何这样做的API 谁能告诉我这个功能的名字?

2 个答案:

答案 0 :(得分:0)

在考虑了问题和我所拥有的特定设置之后,我想出了这个解决方案,这似乎有效。请注意,我无法控制需要支持的语言:将转换文件放入预定义的位置,并由其他人安装系统区域设置。在运行时,如果存在相应的转换文件并且安装了系统区域设置,我需要支持特定语言。这让我得到了这个解决方案:

使用以下功能

function getLocale($lang)
{
    $locs = array();
    exec('locale -a', $locs);

    $locale = 'en-IN';
    foreach($locs as $l)
    {
        $regex = "/$lang\_[A-Z]{2}$/";
        if(preg_match($regex, $l) && file_exists(TRANSROOT . "/$lang.php"))
        {
            $locale = $l;
            break;
        }
    }

    return $locale;
}

如果我无法解析语言环境,我将默认为en-IN,因为我确定已经安装了en-IN。

答案 1 :(得分:0)

Gags上面的最佳答案。 如果您想要当前请求中的accept-language:标头的内容(如果有),请使用:

$_SERVER['HTTP_ACCEPT_LANGUAGE']