【问题标题】:Using locale (language+country) in URL for Symfony2在 Symfony2 的 URL 中使用区域设置(语言+国家)
【发布时间】:2013-03-28 17:20:09
【问题描述】:

我正在 Symfony2 中建立一个国际网站。我的网址如下所示:

www.test.com/en_HK

这应该以港币显示英文文本和价格。英文文本部分已经开始工作。是否有 Symfony 函数可用于从语言环境中获取国家代码?

语言环境包含“languagecode_COUNTRYCODE”。或者我应该写几行代码来分散国家代码对语言环境的影响?

【问题讨论】:

    标签: symfony localization locale


    【解决方案1】:

    不,没有函数可以直接执行此操作,因为语言环境可以是 2 个字母:

    ex. 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");
        }
    

    类似的东西。显然,您需要更好地验证输入语言环境。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-04
      • 1970-01-01
      • 2019-01-05
      相关资源
      最近更新 更多