我最近继承了一个国际化和大量文本的 Struts 1.1 Web 应用程序。许多 JSP 文件如下所示:
<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 违规- 我有 N 个对我的 Struts 操作 URL 的引用而不是 1 个,这使得重构操作 URL 容易出错。
- 混合的关注点——我的应用程序的标记现在不仅仅是我的 JSP 文件,这使得 Web 专家很难调整标记(使用 CSS 等)。
- 翻译后标记——每当我收到新翻译的文本时,我必须决定用
<a>...</a>
标记包围什么。英语很容易,但对于不熟悉的语言就不那么容易了。
我考虑在消息文件中添加占位符,例如:
alert=Please update your {0} and {1}.
但是随后“地址”和“联系信息”这两个词需要以某种方式本地化,用标记包装,并传递给我的消息标签——我看不到一个简单的方法来做到这一点。
我能做些什么来改善这一点?