我正在使用最新版本的symfony(3.1.3) 我想要多变量。 但我找不到好的解决方案
现在我正在做:
{% block h1 %}{{ 'service.create'|trans }} {{ ('service'|trans) }}{% endblock %}
我尝试:
{% block h1 %}{{ 'service','service.create'|trans }} }} { %endblock %}
但没有运气。
我也尝试
{% trans %}service.create|service{% endtrans %}
感谢
答案 0 :(得分:1)
您可以在翻译中使用参数:
{{ 'service.create'|trans }}
{{ 'service.create'|trans({'%separator%': 'any text'}) }}
并在您的messages.ru.yml
中...
service:
create: ... %separator% ...
...
如果您的separator
是html,请像这样添加raw
:
{{ 'service.create'|trans({'%separator%': '<br>'})|raw }}
您在symfony doc here
中有更多详细信息答案 1 :(得分:0)
您可以在后端翻译字符串:
public function indexAction($name)
{
$translated = $this->get('translator')->trans('Hello '.$name);
return new Response($translated);
}
或者在树枝模板中:
<h1>{{ 'service.create'|trans }}</h1>
每次创建新的翻译资源(或安装包含翻译资源的软件包)时,请务必清除缓存,以便Symfony可以发现新的翻译资源:
php bin/console cache:clear
答案 2 :(得分:0)
我需要跨越多个变量。 树枝不支持......
答案 3 :(得分:0)
如果您有“service.yml.en”文件或类似内容:
{{ service.create|trans({}, "service") }}
此处翻译人员将搜索您的service.yml.en文件并加载正确的翻译密钥。
如果您想进行预先翻译,可以使用类似的变量(例如):
{{ (className|lower ~ "." ~ field)|trans({}, className|lower) }}
如果你有一个“user.yml.en”并且你想加载像“user.width”这样的东西,那么它就可以了。
祝你好运:)