如何在Symfony3中获得完整的语言环境?

时间:2017-07-25 05:26:06

标签: php locale symfony-3.3

我知道如何在Symfony获取语言环境,例如$request->getLocale()但我想以“locale_region”格式获取完整的语言环境,例如“en_US”等我目前的语言环境有en,fr,es等,但我希望获得完整的语言环境。我需要这个,因为我想翻译包含像//connect.facebook.net/en_US/

这样的代码的Facebook分享按钮

谢谢。

1 个答案:

答案 0 :(得分:0)

我找到了答案here,稍稍调整一下它就有效了。

这是返回完整语言环境的函数。

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

    foreach ($locs as $l)
    {
        $regex = "/$lang\_[A-Z]{2}$/";
        if(preg_match($regex, $l))
        {
            $locale = $l;
            break;
        }
    }

    return $locale;
}