你們確定都喜歡玩遊戲吧。html
對因而一個遊戲迷的話,確定玩過很多很棒的經典單機遊戲。比方說,國產的《古墓麗影》、《刺客信條》、《鬼泣》國產的仙劍。古劍等。在衆多遊戲系列中,國產的沒必要說了。下載破解了就能玩。java
但是對於哪些,下載下來是英文的韓文的遊戲。對於電腦白癡的遊戲迷來講,第一反映是:這遊戲有沒有漢化補丁?apache
爲何一些經典的遊戲可以用漢化補丁?咱們在開發程序的時候,是否也提供了相同的語言包可供選擇?post
咱們在開發程序的時候,前臺界面寫文本的時候,都是直接寫中文的。在對於這樣作的程序。毫無疑問,假設這個程序。要推向國際化。開發一種語言。基本就至關於把整個系統重構了。ui
假設是那樣的話。咱們的程序推向國際化是否是成本很是大?spa
因此。在開發系統以前。通常都會考慮系統的使用人羣。假設該系統僅僅打算開發一種語言的話。那天然就不用考慮語言的版本號問題了。假設開發的程序或遊戲。以爲可以有發展的空間。翻譯
咱們就可以在程序中增長對國際化的支持了。code
初學Struts。假設有不正確的地方。還請不吝賜教。orm
接下來,我將用一個小樣例。談一談我對語言包的理解。htm
咱們所說的中文補丁就是一個語言包。
傳統的程序開發:
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>Insert title here</title> </head> <body> <form action="login.do" method="post"> 用戶:<input type="text" name="username"><br> 密碼:<input type="text" name="password"><br> <input type="submit" value="登陸"/>"><br> </form> </body> </html>
登陸頁面:
對於上述的頁面中有一部分代碼是 寫死的中文。
假設要支持國際化,就要開發語言包 名字叫 ——國際化資源文件。
說通俗點,就是開發一組字典。把界面上的顯示文字的地方替換掉。語言包就是一組字典。
改動後的登陸界面:
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>Insert title here</title> </head> <body> <form action="login.do" method="post"> <bean:message key="form.field.username"/>:<input type="text" name="username"><br> <bean:message key="form.field.password"/>:<input type="text" name="password"><br> <input type="submit" value="<bean:message key="form.button.login"/>"><br> </form> </body> </html>
界面上沒有文本。僅僅有一些變量……
文本的位置全都用變量替換掉。
這樣僅僅要是顯示界面的文本,都是可控制的。僅僅需要替換一個語言包。就可以了。
現在替換一個語言包。效果如圖:
接下來。咱們看一下這神奇的「語言包」是什麼東西。
對於程序的開發。假設要支持國際化。
在開發的過程當中。可能會不太舒服。
因爲開發前臺的人員,看不到熟悉的程序,而是一大堆變量。
固然也可以,先開發出一個語言的程序來。
而後在進行替換。對於多種語言的開發。也就是多了一個翻譯的過程,也沒什麼神奇的。