在本章中,我们将讨论JSP中的国际化概念.在我们继续之前,让我们理解以下三个重要条款 :
国际化(i18n) : 这意味着允许网站提供翻译成访问者语言或国籍的不同版本的内容.
locale : 这是一个特定的文化或地理区域.它通常被称为语言符号,后跟国家符号,由下划线分隔.例如," en_US "表示美国的英语区域设置.
有许多项目应该是建立一个全球网站时要小心.本教程不会为您提供有关此内容的完整详细信息,但它将为您提供一个很好的示例,说明如何通过区分其位置(即区域设置)来向不同语言提供不同语言的网页.
JSP可以根据请求者的语言环境选择适当的站点版本,并根据本地语言,文化和要求提供适当的站点版本.以下是请求对象的方法,它返回Locale对象.
java.util.Locale request.getLocale()
检测区域设置
以下是您可以用来检测请求者位置,语言的重要区域设置方法课程区域设置.以下所有方法都显示请求者浏览器中设置的国家名称和语言名称.
S.No. | 方法&描述 |
---|---|
1 | String getCountry() 此方法以ISO 3166 2字母为此区域设置返回大写的国家/地区代码格式. |
2 | String getDisplayCountry() 此方法返回区域设置国家/地区的名称适合于向用户显示. |
3 | String getLanguage() 此方法返回语言代码小写,适用于ISO 639格式的此语言环境. |
4 | String getDisplayLanguage() 此方法返回适合于显示的语言环境语言的名称y给用户. |
5 | String getISO3Country() 此方法返回三个字母的缩写对于此区域设置的国家/地区. |
6 | String getISO3Language() 此方法返回三个字母的缩写对于这种语言环境的语言. |
示例
以下示例显示如何在JSP中显示请求的语言和关联国家/减号;
<%@ page import = "java.io.*,java.util.Locale" %><%@ page import = "javax.servlet.*,javax.servlet.http.* "%><% //Get the client's Locale Locale locale = request.getLocale(); String language = locale.getLanguage(); String country = locale.getCountry();%>Detecting Locale Detecting Locale
<% out.println("Language : " + language + "
"); out.println("Country : " + country + "
"); %>
语言设置
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";%><% out.print(title); %> <% out.print(title); %>
En Español
¡Hola Mundo!
特定于区域设置的日期
您可以使用 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"; //获取客户端的Locale Locale locale = request.getLocale(); String date = DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.SHORT, locale).format(new Date()); %> < html> < head> < title><%out.print(title); %GT;</标题> < body> < center> < h1><%out.print(title); %GT;</H1> < div align ="center"> < p>本地日期:<%out.print(date); %GT;</p为H.