JSP国际化
在我们开始之前,让我解释一下三个重要的方面:
-
Internationalization (i18n): 这意味着使一个网站,以提供不同版本的内容翻译成访问者的语言或国籍。
-
Localization (l10n): 这意味着将资源添加到一个网站,以使其适应例如印地文翻译某个特定的地理或文化区域的网站。
-
locale: 这是一个特定的文化或地理区域。它通常被称为语言符号后跟一个国家的象征这是由下划线分隔。例如用“en_US”表示美国英语语言环境。
有哪些应该同时建立了一个全球性的网站受到照顾的项目数。本教程不会给你完整的细节,但它会告诉您如何可以通过差异化的定位,即提供网页在不同的语言显示,以互联网社区一个很好的例子。语言环境。
网站的一个JSP可以适当的拾取版本的基础上请求者的语言环境,并根据当地的语言,文化和要求,提供相应的现场版本。以下是请求对象的方法,它返回Locale对象。
java.util.Locale request.getLocale()
检测区域设置:
以下可以用它来检测请求者的位置当然语言环境,语言和区域设置的重要方法。所有下面的方法显示国家名称和语言名称在请求者的浏览器设置。
S.N. | 方法& 描述 |
---|---|
1 |
String getCountry() This method returns the country/region code in upper case for this locale in ISO 3166 2-letter format. |
2 |
String getDisplayCountry() This method returns a name for the locale's country that is appropriate for display to the user. |
3 |
String getLanguage() This method returns the language code in lower case for this locale in ISO 639 format. |
4 |
String getDisplayLanguage() This method returns a name for the locale's language that is appropriate for display to the user. |
5 |
String getISO3Country() This method returns a three-letter abbreviation for this locale's country. |
6 |
String getISO3Language() This method returns a three-letter abbreviation for this locale's language. |
例子:
这个例子说明了如何显示一个语言和相关国家在一个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(); %> <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可以输出写入西欧语言如英语的网页,西班牙语,德语,法语,意大利语,荷兰语等,在这里,它设置内容语言标头以正确显示所有的字符是非常重要的。
第二点是使用HTML实体,例如,要显示所有的特殊字符“n”代表“N”和“¡”代表“¡”,如下所示:
<%@ 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.txt.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.txt.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>
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创优秀实例教程
转载请注明:文章转载自:代码驿站 [http:/www.codeinn.net]
本文标题:JSP国际化
本文地址:http://www.codeinn.net/jsp/958.html