以下内容引用自http://wiki.jikexueyuan.com/project/jsp/internationalization.html

  • 国际化(i18n):这意味着可以使网站根据访问者的语言或者国籍翻译成不同版本的内容。

  • 本地化(I10n):这意味着将资源添加到一个网站来适应特定的地理或文化,例如将印度语添加到网站。

  • 局部区域:这是一个特定的文化或地理区域。它通常被称为一个语言符号,该语言符号紧随其后的是一个国家符号,它们之间用下划线分隔。例如,“en_US”代表美国的英语语言环境。

一个JSP可以根据请求者的区域位置来收集适当的网站版本,并且根据当地语言、文化和需求来提供适当的网站版本。下面是请求对象返回局部区域对象的方法。

java.util.Locale request.getLocale() 

一、检测局部区域

以下是重要的局部区域的方法,可以用来检测请求者的位置、语言和语言环境。以下所有方法显示设置在请求者的浏览器上的国家名称和语言名称。

方法 描述

String getCountry()

该方法返回国家/地区的代码,用大写的ISO 3166 2字符格式表示语言环境。

String getDisplayCountry()

该方法返回一个局部区域境的国家名称,该名称适合显示给用户。

String getLanguage()

该方法为局部区域用ISO 639格式返回小写的语言代码。

String getDisplayLanguage()

该方法返回一个局部区域的语言名称,该名称可以适合显示给用户。

String getISO3Country()

该方法返回一个局部区域国家的三个字母的缩写。

String getISO3Language()

该方法返回一个局部区域语言的三个字母的缩写。

示例:

这个例子展示了如何为JSP中的一个请求显示一个语言和与其相关的国家:

<%@ page import="java.io.*,java.util.Locale" %>
<%
//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实体显示所有的特殊字符,例如,"ñ" 代表"ñ","¡"代表 “¡”,如下:

<%@ page import="java.io.*,java.util.Locale" %>
<%
// 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="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()来格式化一个数量值,例如一个长型或双精度类型。下面的例子显示了对于一个给定的局部区域,如何格式化货币特性:

<%@ page import="java.io.*,java.util.Locale" %>
<%@ 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="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>

这将产生如下所示结果:

JSP国际化设置的更多相关文章

  1. JSP-Runoob:JSP 国际化

    ylbtech-JSP-Runoob:JSP 国际化 1.返回顶部 1. JSP 国际化 在开始前,需要解释几个重要的概念: 国际化(i18n):表明一个页面根据访问者的语言或国家来呈现不同的翻译版本 ...

  2. Jsp 国际化访问首页选择展示不同字体小例子

    要求:创建一个首页,默然显示英文信息,但可以让用户选择使用英文,繁体中文或简体中文. 1.编写hello_en_US.txt,内容如下: cc.openhome.welcome=welcomecc.o ...

  3. JSP 国际化

    在开始前,需要解释几个重要的概念: 国际化(i18n):表明一个页面根据访问者的语言或国家来呈现不同的翻译版本. 本地化(l10n):向网站添加资源,以使它适应不同的地区和文化.比如网站的印度语版本. ...

  4. jsp config设置jsp页面

    jsp-config jsp-config功能:用于设定jsp页面的相关设置(web.xml 版本在2.4之后) 常用的设置包括 taglib和jsp-property-group两个子元素.其中ta ...

  5. 转!! 关于jsp编码设置 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>

    我们在写jsp页面的时候经常会在页面头部使用如下代码: <%@ page language="java" contentType="text/html; chars ...

  6. android 国际化 设置

    复制了他人的方法 方法和步骤 1 配置选项包括语言代号和地区代号.表示中文和中国的配置选项是 zh-rCN; 表示英文和美国的配置选项是en-rUS.其中,zh 和 en 表示中文和英文: 2 如果想 ...

  7. 【转】iOS多语言本地化(国际化)设置

    原文网址:http://www.jianshu.com/p/2b7743ae9c90 讨论的iOS应用中的多语言设置,Ok 一般是两种情况: 1.根据当前设备语言自动切换显示 2.在应用中可进行语言设 ...

  8. MyEclipse中jsp编码设置

    window->preference->Myeclipse->files and editors->jsp,设置编码为utf-8 2.window->preference ...

  9. eclipse新建jsp模版设置

    第一步:找到JSP模板 eclipse -- >perferences - >Web -> jsp files -Editor ->templates: 第二步:准备编辑JSP ...

随机推荐

  1. idea 部署struts所遇到的问题\

    1.org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter 加载失败 解决方法:下载struts2 的源码包,然后将D:\ ...

  2. 掌握Spark机器学习库-07-回归分析概述

    1)回归与分类算法的区别 回归的预测结果是连续的,分类的预测结果是离散的. 2)spark实现的回归算法有: 3)通过相关系数衡量线性关系的程度

  3. iOS-UI控件之UITableView(四)- cell数据刷新

    TableView- 数据刷新 数据刷新 添加数据 删除数据 更改数据 全局刷新方法(最常用) [self.tableView reloadData]; // 屏幕上的所有可视的cell都会刷新一遍 ...

  4. Node.js——require加载规则

    判断require中的标识参数: 非路径的标识参数:也被称为是核心模块,已经被编译到二进制文件中 带有路径标识参数:自定义模块,一般都是相对定位 第三方模块:表现形式与核心模块一样,但是实际不一样,它 ...

  5. 原生jsonp跨域

    <script> // jsonp跨域原生写法 var script = document.createElement('script'); script.src = 'http://19 ...

  6. 拼字符串 showArray.push(data); showArray.join(",")

    //---// var showColumns = getShowColsRows("table");// var showArray = [];// $.each(showCol ...

  7. CAD参数绘制填充(com接口)

    填充是CAD图纸中不可或缺的对象,在机械设计行业,常常需要将零部件剖开,以表现其内部的细节,而这些被剖开的截面会用填充来表示:在工程设计行业,一些特殊的材料或地形,也会用填充来表示. C#中实现代码说 ...

  8. CAD使用GetAllAppName读所有名称(com接口)

    主要用到函数说明: MxDrawEntity::GetAllAppName 得到所有扩展数据名称,详细说明如下: 参数 说明 [out, retval] IMxDrawResbuf** ppRet 返 ...

  9. JAVA基础——生产者消费者问题

    1.生产者消费者问题:经典案例 生产者和消费者问题是操作系统的经典问题,在实际工作中也常会用到,主要的难点在于协调生产者和消费者,因为生产者的个数和消费者的个数不确定,而生产者的生成速度与消费者的消费 ...

  10. NSFileHandle类

    Objective-C使用NSFileHandle类对文件进行基本操作,IOS文件操作 NSFileHandle类中得方法可以对文件进行基本的读写,偏移量的操作.NSFileHandle基本步骤:1. ...