我正在開發一個網絡項目,希望有一天能夠以多種語言提供(我說「希望」,因爲雖然今天我們只有一個英文網站計劃,但我公司的其他產品是多語言的,我是希望我們也能成功,也需要這樣做)。將大量標記文字國際化的最佳做法?
我知道最佳實踐(我在這裏使用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