每当某个语言标签的某个部分需要以某种方式突出显示时,这里的最佳做法是什么?
我通常会尽量避免使用语言标签中的html标签,方法是将标签拆分为零件并将其包装到Fluid中的相应标签中。
在最坏的情况下,标签用CDATA
包裹:
<trans-unit id="my.label">
<source><![CDATA[Here comes a <strong>bold text</strong> and then <em>italic</em> and now <span class="fancy">fancy styled</span> stop]]></source>
</trans-unit>
但这会混合内容和演示文稿,这可能会在CSS重构并重命名某些类时带来痛苦。
我想到的另一个解决方案是将所有可能包含html标签的文本从XLF移动到插件的FlexForm RTE字段或带有RTE字段的某些配置记录。但它看起来也很像黑客。
你如何解决这个问题?
答案 0 :(得分:4)
对我来说,有一些可能的选择,具体取决于文字的类型。
1。)尽可能避免使用HTML
2。)如果此HTML包含在任何参数中,请移出HTML并将其用作<f:translate />
ViewHelper的参数。
3.)有时很难使用参数,因为翻译只是不同,然后我对不同的语言使用不同的部分/部分,并且不使用任何语言文件。
4.。)我使用CDATA方法。
答案 1 :(得分:1)
Georg Ringer的答案的补充(如果可能的话,其第1点肯定是要走的路):
5.使用XLIFF提供的功能。 XLIFF 1.2具有在可翻译内容中标记标签的元素 - 确切地说,它具有太多这样的元素。您的示例的一种可能表示是
<trans-unit id="my.label">
<source>Here comes a <bpt id="1"><strong></bpt>bold text<ept id="1"></strong></ept> and then <bpt id="2"><em></bpt>italic<ept id="2"></em></ept> and now <bpt id="3"><span class="fancy"></bpt>fancy styled<ept id="3"><span></ept> stop</source>
</trans-unit>
这在代码中看起来很混乱,但它的优势在于,XLIFF感知翻译编辑器会以易于使用的方式向翻译人员提供此功能,如下所示:
如果需要在目标语言中更改文本顺序,翻译人员将能够移动这些标记,并且如果它们在目标语言中没有意义,他们可以整体删除这些紫色标记:例如一些复杂的汉字看起来很粗壮。他们也无法删除部分标签。
答案 2 :(得分:1)
一种可能的解决方案可能是在翻译字符串中使用参数。这些参数可以用翻译的字符串填充,这些字符串包含在标签中(通过TS或流体)。这可能导致非常复杂的翻译处理,因为字符串被分解为多个字符串(可能部分松散上下文)。
另一个解决方案可能是使用标记(例如###B###
用于<b>
而###_B###
用于</b>
)用于最后替换的标记(可以使用因不同设备而异)。这也很复杂,需要一个良好的配置,并发明类似进一步标记的东西。