国际化已经是非常常见的现象,如外贸网站,在国内显示中文,在英文国家显示英文。
在不同的地区,日期格式不同,数字格式也不同,这也是国际化的一种形式。
java实现国际化的关键技术是:
- 使用
Locale
对象获取不同的区域,以确定日期格式和货币格式 - 使用response对象setHeader()设置标头
Content-Language
设置语言
我们可以通过设置Content-Language标头来更改JSP页面语言设置。
1 <%@ page import="java.io.*,java.util.Locale" %> 2 <%@ page import="javax.servlet.*,javax.servlet.http.* "%> 3 <% 4 // 设置响应内容类型 5 response.setContentType("text/html"); 6 // 设置语言代码 7 response.setHeader("Content-Language", "zh-CN"); 8 String title = "JSP 教程"; 9 10 %> 11 <html> 12 <body> 13 <h1><% out.print(title); %></h1> 14 </body> 15 </html>
设置日期
以下代码显示如何使用请求区域设置和java.text.DateFormat类来格式化特定于区域设置的日期和时间。
1 <%@ page import="java.io.*,java.util.Locale" %> 2 <%@ page import="javax.servlet.*,javax.servlet.http.* "%> 3 <%@ page import="java.text.DateFormat,java.util.Date" %> 4 5 <% 6 String title = "Locale Specific Dates"; 7 //获取客户区域 8 Locale locale = request.getLocale( ); 9 String date = DateFormat.getDateTimeInstance( 10 DateFormat.FULL, 11 DateFormat.SHORT, 12 locale).format(new Date( )); 13 %> 14 <html> 15 <body> 16 <h1><% out.print(title); %></h1> 17 <p>Local Date: <% out.print(date); %></p> 18 </body> 19 </html>
设置数字格式
以下代码显示如何使用java.text.NumberFormat类格式化特定定语言环境的数字:
<%@ 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"; //获取客户端区域 Locale locale = request.getLocale( ); NumberFormat nft = NumberFormat.getCurrencyInstance(locale); String formattedCurr = nft.format(1000000); %> <html> <body> <center> <h1><% out.print(title); %></h1> </center> <div align="center"> <p>Formatted Currency: <% out.print(formattedCurr); %></p> </div> </body> </html>