2012-02-01 23 views
0

我在javascript中有以下resourceBundle對象。以更方便的方式使用JavaScript resourceBundle對象

var resourceBundle = { 
    en : { 
     "EX_ONE" : "Example One", 
       "EX_TWO" : "Example One", 
       "EX_THREE" : "Example One" 
     } 
     fr : { 
     "EX_ONE" : "ExampleD Uno", 
       "EX_TWO" : "Exampled Twono", 
       "EX_THREE" : "Exampled theree" 
     } 
} 

但事實是,這是非常不好的做法時,曾經添加一個標籤,我到這裏來,添加新鍵值爲所有的languages.I這裏的意思是隻有英文和(錯誤)法國。但是如果有其他語言呢。你能給我一個更好的方法,比如我們使用jsp和Java的屬性文件。

回答

0

把你.properties資源捆綁文件的classpath下(WEB-INF /類新)是這樣的:

resources.properties

EX_ONE=Example One 
EX_TWO=ExampleTwo 
EX_THREE=Example Three 

resources_fr.properties

EX_ONE=ExampleD Uno 
EX_TWO=Exampled Twono 
EX_THREE=Exampled theree 

在你的JSP

<%@ page language="java" import="java.util.*" %> 
<% 
ResourceBundle resource = ResourceBundle.getBundle("resources"); 
// your language is based on current locale set in request/session 
String exOne=resource.getString("EX_ONE"); 
String exTwo=resource.getString("EX_TWO"); 
%> 
Your localized text here: 
<% 
System.out.println(exOne); 
System.out.println(exTwo); 
%> 
+0

是的好友,我明白了。但已經在js文件中創建了html。我正在做一個轉換,所以它應該是在js級別。動態文本創建在js從ajax響應 – ghTvNath 2012-02-01 09:56:17

+0

爲客戶端本地化,我實現通過使用一個動態頁面來加載當前語言的所有鍵和值,像你的例子一樣建立一個地圖,但是地圖中沒有「en」或「fr」 - 無論服務器當前使用什麼語言。將(javascript地圖)jsp作爲(動態)JavaScript文件包含在上面。使用這些鍵,如resourceBundle.EX_ONE,resourceBundle.EX_TWO – 2012-02-02 01:16:45