2011-03-30 60 views
3

我使用spring MVC,並且我已經安排根據JSP窗體中的語言環境更改消息,使用ReloadableResourceBundleMessageSource和Spring窗體taglib的消息標記。但我想要的是根據區域設置更改圖像。圖像位於JSP中的CSS文件和IMG標籤中。基於I18n問題的語言環境更改圖像和/或css

這有什麼選擇?我知道春季的主題,但我不知道如何將它們附加到LocaleChangeInterceptor。

回答

4

你需要的是所謂的CSS本地化機制。

有幾種可能的方法來做到這一點。內置標準的方式是使用CSS:郎僞選擇並寫下lang屬性是在網上與用戶界面語言:

<html> 
    <head> 
    <style type="text/css"> 
     p:lang(en) {color:blue; background: white;} 
     p:lang(pl) {color: white; background: red;} 
    </style> 
    </head> 
    <body> 
    <p lang="en">Some English text.</p> 
    <p lang="pl">Jakiś Polki tekst.</p> 
    </body> 
</html> 

你的想法。它只是起作用,但不幸的是,它會用大量不同的每種語言類定義來污染你的CSS文件。

否則,您將需要開發自己的解決方案。據我所知,沒有標準的解決方案(至少它不是公開可用的)。您可以通過兩種方式來解決問題:一種方法是創建自己的servlet,它將讀取每種語言的CSS文件的內容並將其提供給Web瀏覽器,其他人可以創建自己的控制器並記下每種語言的路徑CSS文件,同時呈現網頁。

+0

當你只支持2種語言時,我喜歡這個想法,但想象一下,如果你支持10種語言,這會是什麼樣子。 – 2014-04-18 19:55:31

+0

@ ogc-nick:當然,在這種情況下,標準的CSS L10n機制是無用的,您需要構建自己的(即每個語言的加載CSS來覆蓋常規CSS文件的默認值)。沒有人說你需要堅持一種做事的方法...... – 2014-04-19 12:06:31