我正在尝试创建我的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;
现在的问题是: - 当我将语言环境设置为Fr时,例如,在当前语言环境的情况下,我从数据库获取所有实体,现在是美丽的,当我访问一个页面,例如,从数据库导入的slug,我尝试将语言环境更改为en,问题是,在我的视图中没有从数据库更改,但导入文件i18n中的翻译。
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
通过像处理任何其他需要翻译的字符串一样处理数据库中的数据:
在您的控制器中,这看起来像:
$translated = $this->get('translator')->trans( $row['field'] );
在您的模板中,它看起来像:
{{ field|trans }}
现在您需要做的就是为每个可能的键提供翻译。这可能来自您的数据库。希望您不要尝试将法语用户输入的数据自动翻译成英语输出 - 这不是翻译组件的工作 - 请将其留给Google翻译。