我正在开发一个网络项目,希望有一天能够以多种语言提供(我说“希望”,因为虽然今天我们只有一个英文网站计划,但我公司的其他产品是多语言的,我是希望我们也能成功,也需要这样做)。将大量标记文字国际化的最佳做法?
我知道最佳实践(我在这里使用Java,Spring MVC和Velocity)是将用户在外部文件中看到的所有文本,以及通过名称引用到UI文件中如:
#in messages_en.properties:
welcome.header = Welcome to AppName!
#in the markup
<title>#springMessage("welcome.header")</title>
但是,其从来没有过要经历这个过程的一个项目我自己,我很好奇,想解决这个问题的最好办法是什么,当你有一个沉重的UI的一些细分标记,如:
<p>We are excited to announce that Company1 has been acquired by
<a href="http://www.companydivisionx.com" class="boldLink">Division X</a>,
a fast-growing division of <a href="http://www.company2.com" class="boldLink">Company 2</a>, Inc.
(Nasdaq: <a href="http://finance.google.com/finance?q=blah" class="boldLink">BLAH</a>), based in...
我能想到的一个选择是将这个“低等级l“的message.properties中的标记,但这似乎是最糟糕的选择。
,我能想到的其他选项是:
- 商店每个非标记内片段messages.properties,如
acquisitionAnnounce1
,acquisitionAnnounce2
,acquisitionAnnounce3
。这似乎很虽然乏味。 - 将此消息分解为更多可重用组件,例如
Company1.name
,Company2.name
,Company2.ticker
等,因为其中的每一个都可能在许多其他消息中重用。这可能会占该特定消息中80%的字数。
是否有任何最佳做法来处理国际化与这种标记沉重的文字?你只需要咬下去,并承担分解每一段文本的痛苦?您亲自处理的任何项目的最佳解决方案是什么?
不知道我是否完全理解管理这些较小构建块作为子模板的好处。是不是所有来自子模板的字符串仍然会进入相同的messages.properties? – 2009-02-05 17:14:41
是的,你仍然会有很多字符串 - 我想我的观点是你不能真正避免它。防止大量消息字符串的一种策略是将消息包字符串放在数据库中,这是明智的。 – 2009-02-05 17:16:54