我不确定这是问这个的合适地方。我想知道如何最好地设置来自l10n属性文件的部分消息的样式。例如,我的客户端在帮助窗口中需要此消息和格式:
这是自我评估和比较应用程序。
最简单的解决方案是在此标签的messages.properties条目中包含HTML标记。问题在于,处理messages.properties的40个翻译器必然会犯错误,例如删除&lt ;,翻译HTML标记的属性或样式等。此外,它还会使开发人员难以维护标记和样式。
有更好的方法吗?
答案 0 :(得分:1)
我通常看到的解决方案只是在.properties文件中使用带有HTML标记的th:utext
。我认为它确实会引起维护麻烦,如你所说,应该保持最低限度。
一种解决方法是在某些情况下创建单独的字符串,例如:
<span th:text=#{thisIsA}>This is a </span><strong><span th:text="#{selfAssessment}">self-assessment</span></strong>
但是,这很容易出错,因为某些语言可能会改变单词的顺序。所以这不是一个很好的选择。
如果HTML标签特别是一个问题,另一种方式虽然有点丑陋可能是:
thisIsASelfAssessment=This is a {0}self-assessment{1}.
甚至
thisIsA=This is a {0}.
selfAssessment=self-assessment
但是对于下一位阅读它的开发人员而言,这可能会让人感到困惑,并且可能会引入与40名翻译人员相同的问题,因为你有花括号。它也变得非常乏味,并产生更多的线条。
所以最后,你最好选择最简单的utext
解决方案。
项目方面,您可以在没有标记的情况下完成初始翻译,并在翻译完第一遍后添加标记。当您需要更改字符串时,将来可能会出现此问题,但这样做可以最大限度地减少一些问题。将这些字符串保存在.properties文件中的单独块中是有意义的,这样您以后可以将它们作为目标。
好问题,因为我自己有这个问题。