我对树枝模板的翻译有疑问。
这是一种实际的翻译方式。
{% 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 %}
但是我不确定这是否是一个好习惯。
谢谢。
亲切的问候。
答案 0 :(得分:2)
您不需要使用into
,如果您想根据用户的喜好进行翻译,则可以通过侦听器将其添加或将区域设置包括在URL中,那么您所需要做的就是树枝模板为{{ 'Hello' | trans }}
答案 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
但是我不知道这是否正是您的问题。