可翻译内容和HTML标记

时间:2011-11-18 16:47:38

标签: internationalization symfony translation twig

我使用Twig,我想使以下内容可翻译:

{% trans %}
You have actually <span class='messageNumber'>{{messageNumber}} message(s)</span> in your mailbox. 
{% endtrans %}

但是当这个可翻译的内容将由POEdit解析并发送给翻译人员时,他们将看到<span>标签和属性。我该怎么做才能避免这种情况?

我想过这样做:

{% messageNumberFormatted = "<span class='messageNumber'>"~messageNumber~"message(s)</span>" %}

{% trans %}
You have actually {{messageNumberFormatted}} in your mailbox.
{% endtrans %}

但翻译人员的练习不是很重,甚至不好吗?在这种情况下,他们甚至看不到“消息”这个词。

2 个答案:

答案 0 :(得分:2)

首先,您应该使用explicit interval pluralization进行transchoice,如下所示:

{% transchoice message_count %}
   {0}You have {{no messages}} yet|{1}You have {{one message}}|]1,+Inf]You have {{%count% messages}}.
{% endtranschoice %}

然后,您可以使用replace{{替换为开始标记,并使用结束标记替换}}。我不知道你是否可以像这样直接链接

{% transchoice message_count | replace('...') %}

或者,如果您必须先使用set存储在变量中。

答案 1 :(得分:1)

您可以使用trans twig文件管理器和代表您句子的键。

{{ you.have.actually|trans }} <span class='messageNumber'> {{ messageNumber message|trans }} </span> {{ in.your.mailbox|trans }}