struts2的國際化實現過程--剛開始寫的時候按照網上說的那樣配置完,結果一測試,亂碼。然後
自己在網上查了很多關於struts2國際化亂碼的文章,寫的都不全面,比如native2ascii.exe在哪裏都沒有說明
後面摸索了一下,終於不亂碼了。
自己在網上查了很多關於struts2國際化亂碼的文章,寫的都不全面,比如native2ascii.exe在哪裏都沒有說明
後面摸索了一下,終於不亂碼了。
第一步--有兩種方法
A、在src下面新建一個struts.properties,加入裏面的內容爲:
struts.custom.i18n.resources=messagesource
其中:struts.custom.i18n.resources爲固定的,
messagesource爲自己定義的
B、struts.xml裏面添加
<constant name="struts.custom.i18n.resources" value="messagesource"></constant>
A、B兩種方法都能達到同樣的效果(我親自測試過)
第二步:
在src下面新建一個messagesource_en_US.properties,其中messagesource爲第一步中自定義的名稱,
加入裏面的內容爲您自己想要的內容,如:
HelloWorld=Hello World!
username = user name
第三步:
在src下面新建一個messagesource_zh_CN.properties,其中messagesource是第一步中自定義的名稱,
加入裏面的內容爲第二步裏面英文翻譯後的中文(其他語言也可以,主要是達到一一對應),如
HelloWorld=您好,世界!
username = 用戶
第四步:
把messagesource_zh_CN.properties重新複製一份並重命名爲messagesource.properties,
把重命名後的messagesource.properties放到web-inf文件下面
第五步:中文轉碼
找到jdk的安裝目錄--D:\Program Files\Java\jdk1.6.0_10\bin(我的安裝目錄)--------cmd進入
在bin裏面找到native2ascii.exe並運行
在命令窗口輸入
D:\jdk1.5.0_06\bin>native2ascii.exe -encoding utf8 abc.txt bcd.txt
把轉換後的內容替代之前的
命令行格式:
native2ascii.exe -[options] [inputfile [outputfile]]
其中:
-[options]表示命令開關,有兩個選項可供選擇:
-reverse:用Latin-1或Unicode編碼把文件轉換成本地編碼格式
-encoding encoding_name:要把文件轉換的目標編碼
inputfile:表示輸入文件全名。
outputfile:輸出文件名。如果缺少此參數,將輸出到控
native2ascii.exe -[options] [inputfile [outputfile]]
其中:
-[options]表示命令開關,有兩個選項可供選擇:
-reverse:用Latin-1或Unicode編碼把文件轉換成本地編碼格式
-encoding encoding_name:要把文件轉換的目標編碼
inputfile:表示輸入文件全名。
outputfile:輸出文件名。如果缺少此參數,將輸出到控
第六步:在jsp頁面顯示國際化語言--這裏用兩種方法得到國際化語言並顯示
<h2><s:text name="HelloWorld"/></h2>
<h2><s:property value="%{getText('HelloWorld')}"/></h2>
顯示出來的結果是一樣的
第七步:發佈工程,在頁面查看中文是否亂碼,並且更改瀏覽器的語言看能否顯示英文(我上面用的是英文和中文)
如果中文不亂碼,英文也能顯示,說明您測試成功了