Symfony2 jms / i18n-routing-bundle和多个主机到一个语言环境

时间:2015-09-17 16:01:45

标签: symfony routing internationalization

我在我的应用程序中使用了提到的bundle,我希望能够以这种方式配置它:

jms_i18n_routing:
    default_locale: en
    locales: [en, de]
    strategy: custom
    hosts:
        en: [mydomain.com, subdomain.domain.com]
        de: mydomain.de
    redirect_to_host: false

所以多个域到一个区域设置。我想在一个应用程序中运行两个类似的网站,以访问90%的代码,这些代码是相似的,同一个数据库。任何提示我怎么能实现这一目标?或者也许其他捆绑/解决方案对我的问题更准确?

1 个答案:

答案 0 :(得分:0)

从配置中,您无法将多个域绑定到一个区域设置。 您可以尝试扩展此类捆绑包: JMS\I18nRoutingBundle\Router\DefaultLocaleResolver

您需要更改此部分:

public function resolveLocale(Request $request, array $availableLocales)
{
    if ($this->hostMap && isset($this->hostMap[$host = $request->getHost()])) {
        return $this->hostMap[$host];
    }
    ...
}

添加更复杂的hostMap,支持同一区域设置的多个域。