[英]Symfony2+Twig, variable in translation return "A message must be a simple text"
[英]Symfony 2 message translation
在我问这个问题之前,我已经仔细检查过许多关于stackoverflow的问题,但是仍然没有解决。
任务是使用俄语消息而不是英语。 让我们假设在众所周知的身份验证失败消息“错误凭据”的情况下。 这就是我所做的。
在我的配置中:
translator: { fallback: en }
default_locale: ru
创建的messages.ru.xliff
<?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" datatype="plaintext" original="file.ext">
<body>
<trans-unit id="1">
<source>Bad credentials</source>
<target>My russian variant here</target>
</trans-unit>
</body>
</file>
</xliff>
最后,在我的login.html.twig中:
{% if error %}
<div class="error">{{ error.message | trans }}</div>
{% endif %}
身份验证失败时,我仍然会继续收到“错误的凭据”消息。 我试图清除缓存,但这无济于事。
也许我错过了一些东西。 任何帮助表示赞赏。 谢谢。
我猜问题是因为您将源翻译指定为“错误的凭据”,但您使用“ error.message”作为翻译的输入。 因此,您的messages.ru.xliff应该看起来更像:
<?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" datatype="plaintext" original="file.ext">
<body>
<trans-unit id="1">
<source>error.message</source>
<target>My russian variant here</target>
</trans-unit>
</body>
</file>
</xliff>
或更改模板中的消息标签:
{% if error %}
<div class="error">{{ "Bad credentials" | trans }}</div>
{% endif %}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.