JSP 国际化 (i18n)
JSP 国际化是指能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的、符合来访者阅读习惯的页面或数据
继续学习之前,我们先来了解几个重要的概念
名词 | 解释 |
---|---|
国际化(i18n | 一个页面能够根据访问者的语言或国家来呈现不同的翻译版本 |
本地化(l10n) | 向网站添加资源,以使它适应不同的地区和文化 |
区域 | 指特定的区域、文化和语言 通常是一个地区的语言标志和国家标志通过下划线连接起来 |
如果我们的网站希望全球都能正确的浏览,那么我们就需要关心 网站国际化 的问题
JSP 区域检测
JSP 容器能够根据 request 的locale 属性来提供正确地页面版本
下面是如何通过request对象来获得Locale对象的语法
java.util.Locale request.getLocale()
检测区域设置 (Locale) 的方法
下表列出的 Locale对象中的方法可以用于检测request对象的地区,语言,和区域
方法 & 描述 |
---|
String getCountry() 返回国家/地区码的英文大写,或 ISO 3166 2-letter 格式的区域 |
String getDisplayCountry() 返回要显示给用户的国家名称 |
String getLanguage() 返回语言码的英文小写,或ISO 639 格式的区域 |
String getDisplayLanguage() 返回要给用户看的语言名称 |
String getISO3Country() 返回国家名称的3字母缩写 |
String getISO3Language() 返回语言名称的3字母缩写 |
范例: 如何在 JSP 中显示语言和国家
webapp/internationalization.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*,java.util.Locale" %> <%@ page import="javax.servlet.*,javax.servlet.http.* "%> <% String title = "检测区域设置 - JSP 基础教程 | 简单教程(www.twle.cn)"; //获取客户端本地化信息 Locale locale = request.getLocale(); String language = locale.getLanguage(); String country = locale.getCountry(); %> <!doctype html> <title><% out.print(title); %></title> <p><% out.print(title); %></p> <p><% out.println("Language : " + language + "<br />"); %></p> <P><% out.println("Country : " + country + "<br />"); %></P>
在浏览器上输入 http://localhost:8080/jsp/internationalization.jsp 显示如下
更多区域设置
范例 | 描述 |
---|---|
JSP 国际化 - 语言 | 使用特定区域的语言来显示内容 |
JSP 国际化 - 日期 | 根据指定的区域来格式化日期和时间 |
JSP 国际化 - 货币 | 根据指定区域来格式化货币 |
JSP 国际化 - 百分比 | 根据指定的区域来格式化百分比 |