2011-10-05 36 views
0

我正在重新設計面向大型消費者的零售網站。想想像gap.comI18n - 每個語言環境或多個語言環境文件的多個模板

技術堆棧是Apache瓦片,Apache速度,Spring MVC。

問題:爲了實現I18N的權利,我應該爲每個語言環境創建多個速度模板還是將字符串外部化到屬性文件中? 對於後一種方法,排序的速度模板會有太多混亂 - resourcebundle.getMessage(「website.title」,「en_US」),而在前面的例子中,我可能會有重複的邏輯坐在多個模板。

回答

1

你不應該做多個模板(每種語言一個)。這會適得其反。

另外,您需要定義某種用於翻譯文本的包裝。您不希望直接使用區域設置或區域設置標識符(「en_US」),而是需要爲會話設置區域設置並使用此對象(可能是隱式的,因此每次調用getMessage()時都不需要傳遞該對象,因此包裝)。

請注意,如果直接調用ResourceBundle類的方法,某些方法可能會拋出MissingResourceException(這是運行時異常,使事情變得更糟)。你一定要檢查它。

順便說一句。爲了本地化的目的,Velocity定義了some tool。有趣的是,我從來沒有見過任何人使用它(但說實話,我對Velocity的經驗非常有限)。

相關問題