這周打算把國際化、JDBC和XML學習一下,從下周就開始學習三大框架,再堅持一個半月吧就能入門JavaWeb了,上周周末兩天過的真是生不如死,兩天坐在家里,醒來就寫博客,原本在公司也自己操作了一遍,其實不用寫也可以,不過想著為了加深印象,還是自己寫出來這樣印象更深,基礎更扎實,學習編程就和當兵一樣,平時多流汗,戰(zhàn)時少流血,平時解決的bug多了,那以后遇到類似的就會學會避免出錯。還是接著上面的博客留下的坑來說。上一博客jsp標簽庫中留了幾個標簽,其中就有今天要學的多語言國際化的。
一、資源國際化、資源本地化
I18N:Internationalization,資源國際化,I10N,Localization,資源本地化,個人的感覺兩者沒什么區(qū)別,可能是主體不一樣,國際化是對于開發(fā)運營者來說,本地化對于用戶來說。
二、資源文件編碼
資源文件屬性名為properties,保存的是key-value形式的屬性對,必須為ASCII字符,由于中文、日文等是采用Unicode字符,所以要對其進行轉(zhuǎn)碼。轉(zhuǎn)碼可以使用JDK自帶的native2ascii.exe工具,位于JDK安裝目錄的bin文件下,可以使用命令行native2ascii -[options] [inputfile] [outputfile],其中options包括-encoding encoding_name 或reverse.-encoding encoding_name是將文件按照encoding_name指定的格式轉(zhuǎn)化,reverse將編碼后的文件還原,encoding可省略,如果指定,一定要與原文件編碼方式一致,否則會出現(xiàn)亂碼。
先在E:\java文件夾下新建了一個messages.txt的文件,然后寫入prompt.hello=您好!。打開命令行輸入native2ascii命令,如上圖可能會報錯,如果報錯可能是因為JDK沒寫入環(huán)境變量path中,也可以直接打開jdk的bin文件夾,在其文件夾下使用native2ascii命令,然后會自動輸出對應的資源文件。這里我輸出的是與源文件文件名一樣的,也可以直接輸出messages_zh_CN.properties.
prompt.hello=\u60a8\u597d!
三、資源文件的使用
1.不帶參數(shù)的資源文件
在WebContent/WEB-INF下創(chuàng)建classes文件夾,然后在文件夾下創(chuàng)建resources文件夾,之后把編碼過的資源文件引入,由于我沒在轉(zhuǎn)碼時直接轉(zhuǎn)成帶有l(wèi)ocale的,所以改名為messages_zh_CN.properties.最后創(chuàng)建一個messages.properties資源文件用于做為默認的資源文件,如果找不到就顯示這里面的。
在使用中就要用到上一博客的fmt標簽庫的標簽:<fmt:bundle/><fmt:message/><fmt:setBundle/>
<fmt:bundle basename="resources/messages" prefix="prompt."> <fmt:message key="hello"> </fmt:message> </fmt:bundle>
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構來看看(二) 2017-07-26