国际化(i18n):表明一个页面根据访问者的措辞或国家来呈现不同的翻译版本。

本地化(l10n):向网站添加资源,以使它适应不同的地区和文化。
比如网站的印度语版本。

区域:这是一个特定的区域或文化,常日认为是一个措辞标志和国家标志通过下划线连接起来。
比如\"大众en_US\"大众代表美国英语地区。

如何实现jsp的国际化JSP 国际化 JavaScript

如果想要建立一个环球化的网站,就须要关心一系列项目。
本章将会详细见告您如何处理国际化问题,并给出了一些例子来加深理解。

JSP容器能够根据request的locale属性来供应精确地页面版本。
接下来给出了如何通过request工具来得到Locale工具的语法:

java.util.Locale request.getLocale()

检测Locale

下表列举出了Locale工具中比较主要的方法,用于检测request工具的地区,措辞,和区域。
所有这些方法都会在浏览器中显示国家名称和措辞名称:

序号方法 & 描述1String getCountry()返返国度/地区码的英文大写,或 ISO 3166 2-letter 格式的区域2String getDisplayCountry()返回要显示给用户的国家名称3String getLanguage()返回措辞码的英文小写,或ISO 639 格式的区域4String getDisplayLanguage()返回要给用户看的措辞名称5String getISO3Country()返返国度名称的3字母缩写6String getISO3Language()返回措辞名称的3字母缩写

实例演示

这个例子见告我们如何在JSP中显示措辞和国家:

&lt;%@ page import=\公众java.io.,java.util.Locale\公众 %><%@ page import=\"大众javax.servlet.,javax.servlet.http. \公众%><%

//获取客户端本地化信息

Locale locale = request.getLocale();

String language = locale.getLanguage();

String country = locale.getCountry();%><html><head><title>Detecting Locale</title></head><body><center><h1>Detecting Locale</h1></center><p align=\"大众center\"大众><%

out.println(\"大众Language : \"大众 + language + \"大众<br />\"大众);

out.println(\公众Country : \"大众 + country + \"大众<br />\公众);%></p></body></html>

措辞设置

JSP可以利用西欧措辞来输出一个页面,比如英语,西班牙语,德语,法语,意大利语等等。
由此可见,设置Content-Language信息头来精确显示所有字符是很主要的。

第二点便是,须要利用HTML字符实体来显示分外字符,比如\公众&#241;\公众 代表的是\"大众?\"大众,\"大众&#161;\公众代表的是 \"大众?\"大众 :

<%@ page import=\公众java.io.,java.util.Locale\"大众 %><%@ page import=\公众javax.servlet.,javax.servlet.http. \"大众%><%

// Set response content type

response.setContentType(\"大众text/html\"大众);

// Set spanish language code.

response.setHeader(\"大众Content-Language\"大众, \公众es\公众);

String title = \"大众En Espa?ol\公众;%><html><head><title><% out.print(title); %></title></head><body><center><h1><% out.print(title); %></h1></center><div align=\公众center\公众><p>En Espa?ol</p><p>?Hola Mundo!</p></div></body></html>

区域特定日期

可以利用java.text.DateFormat类和它的静态方法getDateTimeInstance()来格式化日期和韶光。
接下来的这个例子显示了如何根据指定的区域来格式化日期和韶光:

<%@ page import=\公众java.io.,java.util.Locale\"大众 %><%@ page import=\"大众javax.servlet.,javax.servlet.http. \"大众%><%@ page import=\公众java.text.DateFormat,java.util.Date\"大众 %><%

String title = \公众Locale Specific Dates\"大众;

//Get the client's Locale

Locale locale = request.getLocale( );

String date = DateFormat.getDateTimeInstance(

DateFormat.FULL,

DateFormat.SHORT,

locale).format(new Date( ));%><html><head><title><% out.print(title); %></title></head><body><center><h1><% out.print(title); %></h1></center><div align=\公众center\"大众><p>Local Date: <% out.print(date); %></p></div></body></html>

区域特定货币

可以利用java.text.NumberFormat类和它的静态方法getCurrencyInstance()来格式化数字。
比如在区域特定货币中的long型和double型。
接下来的例子显示了如何根据指定的区域来格式化货币:

<%@ page import=\"大众java.io.,java.util.Locale\公众 %><%@ page import=\"大众javax.servlet.,javax.servlet.http. \"大众%><%@ page import=\"大众java.text.NumberFormat,java.util.Date\"大众 %><%

String title = \"大众Locale Specific Currency\"大众;

//Get the client's Locale

Locale locale = request.getLocale( );

NumberFormat nft = NumberFormat.getCurrencyInstance(locale);

String formattedCurr = nft.format(1000000);%><html><head><title><% out.print(title); %></title></head><body><center><h1><% out.print(title); %></h1></center><div align=\"大众center\公众><p>Formatted Currency: <% out.print(formattedCurr); %></p></div></body></html>

区域特定百分比

可以利用java.text.NumberFormat类和它的静态方法getPercentInstance()来格式化百分比。
接下来的例子见告我们如何根据指定的区域来格式化百分比:

<%@ page import=\公众java.io.,java.util.Locale\公众 %><%@ page import=\公众javax.servlet.,javax.servlet.http. \"大众%><%@ page import=\"大众java.text.NumberFormat,java.util.Date\公众 %><%

String title = \公众Locale Specific Percentage\"大众;

//Get the client's Locale

Locale locale = request.getLocale( );

NumberFormat nft = NumberFormat.getPercentInstance(locale);

String formattedPerc = nft.format(0.51);%><html><head><title><% out.print(title); %></title></head><body><center><h1><% out.print(title); %></h1></center><div align=\"大众center\公众><p>Formatted Percentage: <% out.print(formattedPerc); %></p></div></body></html>

如您还有不明白的可以不才面与我留言或是与我磋商QQ群308855039,我们一起飞!