2010-11-25 51 views
0

如何在運行時更改xml:language?如何在運行時設置xml:lang值?

情況是,人們說我們選擇'EN'作爲瀏覽器語言。一些其他用戶具有例如在相同語言屬性中的'FI'。對於第一個人來說,所有東西都用英語顯示,因此第二個人用芬蘭語顯示。這兩個人使用谷歌瀏覽器,並且因爲兩者的代碼都將xml:lang設置爲默認的「en-US」,芬蘭文本被視爲英文。現在我想要的是芬蘭語文本在運行時被識別爲芬蘭語,並且在xml:lang設置級別。所以,xml:lang值不能像現在這樣硬編碼。我也不想爲7種語言製作7個不同的頁面,因爲我無法在運行時修改一個字段。

我的設置是爲i18n使用struts2和xwork。安裝程序是一個帶有變量xml:lang的html標籤的jsp文件,並且該安裝程序應該在運行時更改。

回答

1

我假設你想設置這個值在<html>的水平。

例目前代碼:

<html lang="en" xml:lang="en"> 

例修訂代碼:

<html lang="${action.language}" xml:lang="${action.language}"> 

然後,在你的Struts2的操作添加一個getLanguage()方法(只是把它放在一個基地的行動,一切從繼承)如:

public String getLanguage() { 
    // return the appropriate language based on the user's choice 
} 
+0

感謝您的解決方案史蒂文。我添加了一行java.util.Locale locale = getLocale();然後返回值是返回locale.getLanguage();這樣,瀏覽器默認的語言設置就被考慮在內。 – mico 2010-12-01 12:34:05