我們有一個應用程序,它使用基本的JSP/servlet,所有當前使用英文的文本在JSP頁面中被硬編碼。我們正在考慮應用程序的國際化,因此我們需要某種方式將文本提取到屬性文件中。用於國際化和本地化的JSTL資源包
這是我到目前爲止所做的:
1)創建一個名爲XXXXX-messages_en.properties
的文件,將鍵/值對添加到屬性文件中,例如, AAAAA = Hello World
2)負載JSTL相關標籤庫到JSP頁面
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
3)
<fmt:message key="AAAAA" bundle="${XXXXX}"/>
4替換以前的文本)添加setBundle標記到JSP頁面:
<fmt:setBundle basename="XXXXX-messages" var="XXXXX"/>
並重新啓動服務器,一切正常顯示。
但是,我對於JSTL國際化庫的使用問題是:
問題1)看來,我要補充<fmt:setBundle>
標籤到每個燒毛JSP頁面,這是一個有點難看,如果有什麼需要的未來的變化(名稱變更?)這會使生活變得更加困難。
我想想也許我可以創建一個單獨的頁面並將其放入此<fmt:setBundle>
,然後使用<jsp:include>
包含此頁面。或者我可以通過servlet過濾器注入?我會說我對任何選項都不滿意。
有沒有推薦的方法來做到這一點?
問題2)如果在那裏沒有匹配屬性文件,如何指定默認語言?我測試過我的情況,如果我把<fmt:setLocale>
加入到帶有法語的JSP頁面中,頁面仍然可以正確加載。這是否意味着英文版本始終是默認版本,還是僅僅因爲我的操作系統/瀏覽器是英文的?
如果中國/日本用戶打開我的頁面,並且我有英文和法文屬性文件,會發生什麼情況?
我肯定讀這時候我身邊谷歌,所以我怎麼能忘記呢?那個時候我的腦子一定要掉頭。無論如何,謝謝你的回答! –