Symfony2:更改区域设置Slug multi-langue

时间:2015-10-09 21:55:10

标签: php symfony twig slug

我正在尝试创建我的Web多语言应用程序,我想更改slug兼容性的默认语言环境,因为我的slug也是多语言。

我使用JMS \ I18nRoutingBundle \ JMSI18nRoutingBundle()来更改区域设置。

在我的枝条上我有:



{% if app.request.attributes.get('_locale') == 'fr' %}
        <a href="{{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')|merge(app.request.query.all|merge({'_locale': 'en' }))) }}">
            en
        </a>
    {% else %}
        <a href="{{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')|merge(app.request.query.all|merge({'_locale': 'fr' }))) }}">
            fr
        </a>
    {% endif %}
&#13;
&#13;
&#13;

现在的问题是:   - 当我将语言环境设置为Fr时,例如,在当前语言环境的情况下,我从数据库获取所有实体,现在是美丽的,当我访问一个页面,例如,从数据库导入的slug,我尝试将语言环境更改为en,问题是,在我的视图中没有从数据库更改,但导入文件i18n中的翻译。

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:1)

通过像处理任何其他需要翻译的字符串一样处理数据库中的数据:

Translation Docs

在您的控制器中,这看起来像:

$translated = $this->get('translator')->trans( $row['field'] );

在您的模板中,它看起来像:

{{ field|trans }}

现在您需要做的就是为每个可能的键提供翻译。这可能来自您的数据库。希望您不要尝试将法语用户输入的数据自动翻译成英语输出 - 这不是翻译组件的工作 - 请将其留给Google翻译。