我正在 Symfony2 中建立一个国际网站。我的网址如下所示:
www.test.com/en_HK
这应该以港币显示英文文本和价格。英文文本部分已经开始工作。是否有 Symfony 函数可用于从语言环境中获取国家代码?
语言环境包含“languagecode_COUNTRYCODE”。或者我应该写几行代码来分散国家代码从语言环境中的注意力?
我正在 Symfony2 中建立一个国际网站。我的网址如下所示:
www.test.com/en_HK
这应该以港币显示英文文本和价格。英文文本部分已经开始工作。是否有 Symfony 函数可用于从语言环境中获取国家代码?
语言环境包含“languagecode_COUNTRYCODE”。或者我应该写几行代码来分散国家代码从语言环境中的注意力?
不,没有函数可以直接执行此操作,因为语言环境可以是 2 个字母:
前任。en, fr, de
SonataIntlBundle 提供了一些 ISO 代码扩展,但不是您想要的
http://sonata-project.org/bundles/intl/master/doc/reference/locale.html
Locale组件非常接近,您可以这样做:
$countryCodes = Locale::getCountries('en_HK');
编写一个服务来做到这一点应该是相当简单的:
class CountryCodeExtractor
{
function fromLocale($locale)
{
if(strlen($locale) == 4){
return substr($locale, -2);
}
else throw new \Exception("Invalid locale passed");
}
类似的东西。显然,您需要更好地验证输入语言环境。