翻译区域性symfony 4树枝模板

时间:2018-10-28 10:28:08

标签: symfony twig locale symfony4

我对树枝模板的翻译有疑问。

这是一种实际的翻译方式。

{% trans into 'en_EN' %}Hello{% endtrans %}!,

我可以这样直接从datbase中加载''值吗?,(这将返回error =。

{% trans into {{ app.user.lang }} %}Hello{% endtrans %}!,

还是我应该使用控制器来做到这一点?

编辑:顺便说一句,现在我正在使用以下功能进行翻译:

{% with %}
{% set lang = app.user.lang %}
<button class="btn btn-outline-primary" type="button" data-toggle="dropdown">{% trans into lang %}Hello{% endtrans %}!, {{ app.user.username }}<i class="material-icons">arrow_drop_down</i></button>
{% endwith %}

但是我不确定这是否是一个好习惯。

谢谢。

亲切的问候。

2 个答案:

答案 0 :(得分:2)

您不需要使用into,如果您想根据用户的喜好进行翻译,则可以通过侦听器将其添加或将区域设置包括在URL中,那么您所需要做的就是树枝模板为{{ 'Hello' | trans }}

请参阅:https://symfony.com/doc/current/translation/locale.html

答案 1 :(得分:0)

我认为您的问题也不是很清楚。通常,您可以在配置文件中定义默认语言,然后使用语言选择器或其他方式更改它们。

那么您就不需要那个into

Symfony 4 How to change language Step by Step

这是一个很好的示例,说明如何构建语言切换器和一些教程。您应该阅读解释最多的翻译文档。

https://symfony.com/doc/current/translation.html

当您确实要将翻译存储到数据库时,必须使用翻译加载器并对其进行扩展,以便您必须注册新服务并从数据库加载翻译。

Symfony2 Database Translation Loader isn't executed

但是我不知道这是否正是您的问题。