java多國語言設計
1.要先把對照的語言資源檔做好,然後放在專案中的\WEB-INF\classes目錄下
2.檔名的規則是根據 ResourceBundle.getBundle("Language")中的Language為開頭,底線後面是語言地區別,例如繁體中文的檔名即為Language_zh_TW.properties,如果是英文語言,檔名為Language_en.properties,記得存檔目錄為\WEB-INF\classes。
3. Locale currentLocale = Locale.getDefault();//取得地區別zh_TW
ResourceBundle messages = ResourceBundle.getBundle("Language", currentLocale);//取得Language_zh_TW.properties資源檔
4.String hello = messages.getString("hello");//找到資源檔對應的文字
System.out.println(hello);//SHOW出文字
資源檔文字為hello=哈哈~~~
SHOW出的結果==>????~~~
用NETBEANS開啟Language_zh_TW==>hello=«¢«¢~~~
那是因為java對語言資源檔處理是用UNICODE,所以需把檔案的中文字轉成Unicode編碼
所以如果用文字編輯器使用Big5編碼,那麼可以執行native2ascii程式:把big5編碼轉成Unicode編碼
native2ascii -encoding Big5 Language_zh_TW.txt Language_zh_TW.properties
PS:如果在命令列執行出錯,表示java的path未設定,可以到c:\PROGRAM FILES\JAVA\下找安裝JDK的版本目錄下有在BIN的目錄下可找到。
轉換過後如果用文字編輯器
參考來源:
http://openhome.cc/Gossip/Encoding/ResourceBundle.html
2.檔名的規則是根據 ResourceBundle.getBundle("Language")中的Language為開頭,底線後面是語言地區別,例如繁體中文的檔名即為Language_zh_TW.properties,如果是英文語言,檔名為Language_en.properties,記得存檔目錄為\WEB-INF\classes。
3. Locale currentLocale = Locale.getDefault();//取得地區別zh_TW
ResourceBundle messages = ResourceBundle.getBundle("Language", currentLocale);//取得Language_zh_TW.properties資源檔
4.String hello = messages.getString("hello");//找到資源檔對應的文字
System.out.println(hello);//SHOW出文字
資源檔文字為hello=哈哈~~~
SHOW出的結果==>????~~~
用NETBEANS開啟Language_zh_TW==>hello=«¢«¢~~~
那是因為java對語言資源檔處理是用UNICODE,所以需把檔案的中文字轉成Unicode編碼
所以如果用文字編輯器使用Big5編碼,那麼可以執行native2ascii程式:把big5編碼轉成Unicode編碼
native2ascii -encoding Big5 Language_zh_TW.txt Language_zh_TW.properties
PS:如果在命令列執行出錯,表示java的path未設定,可以到c:\PROGRAM FILES\JAVA\下找安裝JDK的版本目錄下有在BIN的目錄下可找到。
轉換過後如果用文字編輯器
參考來源:
http://openhome.cc/Gossip/Encoding/ResourceBundle.html
留言
張貼留言