JSP 国际化

收藏786

阅读23248

更新时间2022-04-13

在开始前,需要解释几个重要的概念:

  •                 国际化(i18n):表明一个页面根据访问者的语言或国家来呈现不同的翻译版本。

  •                 本地化(l10n):向网站添加资源,以使它适应不同的地区和文化。比如网站的印度语版本。

  •                 区域:这是一个特定的区域或文化,通常认为是一个语言标志和国家标志通过下划线连接起来。比如"en_US"代表美国英语地区。

如果想要建立一个全球化的网站,就需要关心一系列项目。本章将会详细告诉您如何处理国际化问题,并给出了一些例子来加深理解。

JSP容器能够根据request的locale属性来提供正确地页面版本。接下来给出了如何通过request对象来获得Locale对象的语法:

java.util.Locale request.getLocale()

        检测Locale

下表列举出了Locale对象中比较重要的方法,用于检测request对象的地区,语言,和区域。所有这些方法都会在浏览器中显示国家名称和语言名称:

序号方法 & 描述
                    1String getCountry()


返回国家/地区码的英文大写,或 ISO 3166 2-letter 格式的区域
                    2String getDisplayCountry()


返回要显示给用户的国家名称
                    3String getLanguage()


返回语言码的英文小写,或ISO 639 格式的区域
                    4String getDisplayLanguage()


返回要给用户看的语言名称
                    5String getISO3Country()


返回国家名称的3字母缩写
                    6String getISO3Language()


返回语言名称的3字母缩写

实例演示

这个例子告诉我们如何在JSP中显示语言和国家:

<%@ page import="java.io.*,java.util.Locale" %>
<%@ page import="javax.servlet.*,javax.servlet.http.* "%>
<%
   //获取客户端本地化信息
   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字符实体来显示特殊字符,比如"ñ" 代表的是"?","¡"代表的是 "?" :

<%@ 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";
    //Get the client's Locale
    Locale locale = request.getLocale( );
    String date = DateFormat.getDateTimeInstance(
                                  DateFormat.FULL, 
                                  DateFormat.SHORT, 
                                  locale).format(new Date( ));
%>


<% out.print(title); %>


<% out.print(title); %>

Local Date: <%  out.print(date); %>


        区域特定货币

可以使用java.text.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);
%>


<% out.print(title); %>


<% out.print(title); %>

Formatted Currency: <%  out.print(formattedCurr); %>


        区域特定百分比

可以使用java.text.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);
%>


<% out.print(title); %>


<% out.print(title); %>

Formatted Percentage: <%  out.print(formattedPerc); %>

JSP 调试

相关

视频

RELATED VIDEOS

更多

免费

php8,我来也
初级 php8,我来也

315072次学习

收藏

免费

Thinkphp6.0正式版视频教程

免费

细说PHP第一季
中级 细说PHP第一季

265134次学习

收藏

免费

简单聊聊PHP创业那点事
初级 简单聊聊PHP创业那点事

12919次学习

收藏

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

71万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

热门下载

更多
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号