我最近继承了一个国际化和文本沉重的Struts 1.1 Web应用程序。许多JSP文件的样子:我如何重构我的属性文件中的HTML标记?
<p>
<bean:message key="alert" />
</p>
和属性文件看起来像:
messages.properties
alert=Please update your <a href="/address.do">address</a> and <a href="/contact.do">contact information</a>.
与N个其他语言(messages_fr.properties等)适当的翻译。
问题:
- DRY违反 - 我有我的Struts动作的网址,而不是1,这使得重构操作URL出错ñ引用。
- 混合关注 - 我的应用程序的标记现在不仅仅是我的JSP文件,使Web专家很难调整标记(使用CSS等)。
- 翻译后标记 - 每当我收到新翻译后的文本,我必须决定如何处理
<a>...</a>
标记包围。易于使用英语,但对于不熟悉的语言则不那么容易。
我已经考虑将占位符中的邮件文件,如:
alert=Please update your {0} and {1}.
但随后的话“地址”和“联系人信息”会以某种方式需要进行本地化,包裹着标记,传递给我的消息标记 - 我看不到一个简单的方法来做到这一点。
我该怎么做才能改善这一点?