一:国际化
1.国际化的概念:一款软件希望不同的国家和地区的使用者都可以使用,这个时候软件中的一些内容和数据需要根据用户地区信息不同而展示成不同的样子。

2.国际化的组成部分:
(1)页面中固定文本元素的国际化
ResourceBundle 资源包
<fmt>

示例代码:框架截图:

java代码:

package com.dzq.i18n;

import java.util.Locale;
import java.util.ResourceBundle; public class ResourceBundleDemo {
public static void main(String[] args) {
//根据你的地区,调用不同资源文件
/**
* resourcebundle ,查找资源文件,首先找指定的,没有,就找操作系统的,还找不到就找默认的
*/
ResourceBundle bundle= ResourceBundle.getBundle("resource",Locale.ENGLISH);//Locale.CHINA读取指定资源文件
String value=bundle.getString("username");
System.out.println(value);
}
}

配置文件:

username=username
password=password
submit=sunbmit

resource_en.properties

username=\u7528\u6237\u540D
password=\u5BC6\u7801
submit=\u63D0\u4EA4

resource_zh.properties

username=defaultusername
password=defaultpassword
submit=defaultsunbmit

resource.properties

jsp页面:

<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.util.*"
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head> <body>
<h1>java方式实现页面国际化</h1><hr>
<%
Locale local=request.getLocale();
ResourceBundle bundle=ResourceBundle.getBundle("resource",local);
%>
<form action="#">
<%=bundle.getString("username") %><input type="text" />
<%=bundle.getString("password") %>:<input type="text" />
<input type="submit" value="<%=bundle.getString("submit") %>" />
</form> <h1>fmt标签方式实现页面国际化</h1><hr>
<fmt:setBundle basename="resource" var="bundle" scope="page"/>
<form action="#">
<fmt:message bundle="${bundle }" key="username"/><input type="text" />
<fmt:message bundle="${bundle }" key="password"/><input type="text" />
<input type="submit" value="<fmt:message bundle="${bundle }" key="submit"/>" />
</form>
</body>
</html>

效果截图:

(2)对程序动态产生的数据的国际化 -- 日期时间/货币

~1.日期时间DateFormat -- SimpleDateFormat
static DateFormat getDateInstance()
获取日期格式器,该格式器具有默认语言环境的默认格式化风格。
static DateFormat getDateInstance(int style)
获取日期格式器,该格式器具有默认语言环境的给定格式化风格。
static DateFormat getDateInstance(int style, Locale aLocale)
获取日期格式器,该格式器具有给定语言环境的给定格式化风格。

static DateFormat getTimeInstance()
获取时间格式器,该格式器具有默认语言环境的默认格式化风格。
static DateFormat getTimeInstance(int style)
获取时间格式器,该格式器具有默认语言环境的给定格式化风格。
static DateFormat getTimeInstance(int style, Locale aLocale)
获取时间格式器,该格式器具有给定语言环境的给定格式化风格。

static DateFormat getDateTimeInstance()
获取日期/时间格式器,该格式器具有默认语言环境的默认格式化风格。
static DateFormat getDateTimeInstance(int dateStyle, int timeStyle)
获取日期/时间格式器,该格式器具有默认语言环境的给定日期和时间格式化风格。
static DateFormat getDateTimeInstance(int dateStyle, int timeStyle, Locale aLocale)
获取日期/时间格式器,该格式器具有给定语言环境的给定格式化风格。

String format(Date date)

示例代码:

package com.dzq.dateformat;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale; import org.junit.Test; public class DateFormatDemo { /**
* 将日期对象转换成字符串表示形式,此时根据地区语言环境不同,转成不同的字符串形式
*/
@Test
public void test1(){
Date date=new Date();
DateFormat format = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, Locale.CHINA);
String datestr=format.format(date);
System.out.println(datestr);
} /**
* 将字符串转换成日期
* @throws ParseException
*/
@Test
public void test2() throws ParseException{
String datestr="2016年4月17日 星期日 上午09时31分40秒 CST";
DateFormat format=DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, Locale.CHINA);
Date date=format.parse(datestr);
System.out.println(date.toLocaleString());
} @Test
public void test3() throws ParseException{
String datestr="09月~24日##2016年**21时%53分%59秒";
SimpleDateFormat format=new SimpleDateFormat("MM月~dd日##yyyy年**HH时%mm分%ss秒");
Date date=format.parse(datestr);
System.out.println(date.toLocaleString());
} @Test
public void test4(){
Date date=new Date();
SimpleDateFormat format=new SimpleDateFormat("MM月~dd日##yyyy年**HH时%mm分%ss秒");
String datestr=format.format(date);
System.out.println(datestr);
}
}

~2.货币
static NumberFormat getCurrencyInstance()
返回当前默认语言环境的货币格式。
static NumberFormat getCurrencyInstance(Locale inLocale)
返回指定语言环境的货币格式。

1000 -- > $1000.00 ¥1000.00

package com.dzq.numberformat;

import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Locale; import org.junit.Test; public class NumberFormatDemo { /**
* 将数字表示成字符串,根据地区转换
*/
@Test
public void test1(){
double money=10000.00;
NumberFormat format=NumberFormat.getCurrencyInstance(Locale.CHINA);
String moneystr=format.format(money);
System.out.println(moneystr);
} @Test
public void test2() throws ParseException{
String moneystr="¥10,000.00";
NumberFormat format=NumberFormat.getCurrencyInstance(Locale.CHINA);
double money=format.parse(moneystr).doubleValue();
System.out.println(money);
}
}

~3.消息国际化

示例代码:

package com.dzq.messageformat;

import java.text.MessageFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale; public class MSGFormatDemo {
//At 12:30 pm on jul 3,1998, a hurricance destroyed 99 houses and caused $1000000 of damage
//当一个语句中有多个和国际化相关的内容时,需要先切割字符串将和国际化相关的数据国际化后再拼接字符串.
public static void main(String[] args) {
String str = "At {0,time,full} on {1,date,full}, a hurricance destroyed {2,number} houses and caused {3,number,currency} of damage";
MessageFormat format = new MessageFormat(str,Locale.CHINA); Calendar c = Calendar.getInstance();
c.set(1998, 6, 3, 12, 30, 0);
Date date = c.getTime(); str = format.format(new Object[]{date,date,99,1000000});
System.out.println(str);
}
}

20160416--javaweb之国际化的更多相关文章

  1. Javaweb之国际化

    Javaweb之国际化 一.前言 软件的本地化:一个软件在某个国家或地区使用时,采用该国家或地区的语言,数字,货币,日期等习惯. 软件的国际化:软件开发时,让它能支持多个国家和地区的本地化应用.使得应 ...

  2. 深入分析JavaWeb Item22 -- 国际化(i18n)

    一.国际化开发概述 软件的国际化:软件开发时,要使它能同一时候应对世界不同地区和国家的訪问,并针对不同地区和国家的訪问.提供对应的.符合来訪者阅读习惯的页面或数据. 国际化(international ...

  3. JavaWeb的国际化

    国际化 1.国际化开发概述 1.1.软件的国际化 软件开发时,要使它能同时应对世界不同地区和国家的方法,并针对不同地区和国家的方法,提供相应的,符合来访者阅读习惯的页面或数据 国际化简称:i18n : ...

  4. JavaWEB开发国际化

    1.国际化开发概述 )软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. )国际化又称为 i18n:inter ...

  5. JavaWeb的国际化(17/4/8)

      国际化的缺点: 因为文字不同,所以带来的排版问题一样严重,通常都是重新在写一个网站反而更加清晰,快捷 1:需要从浏览器中获取到浏览器语言(Accept-Language) 2:利用locale获取 ...

  6. javaweb学习总结(三十一)——国际化(i18n)

    一.国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationaliz ...

  7. JavaWeb之多语言国际化

    这周打算把国际化.JDBC和XML学习一下,从下周就开始学习三大框架,再坚持一个半月吧就能入门JavaWeb了,上周周末两天过的真是生不如死,两天坐在家里,醒来就写博客,原本在公司也自己操作了一遍,其 ...

  8. JavaWeb 后端 <十三> 之 监听器 JSTL国际化

    1. 监听器 1.1   概述 监听器: 主要是用来监听特定对象的创建或销毁.属性的变化的! 是一个实现特定接口的普通java类! 对象: 自己创建自己用 (不用监听) 别人创建自己用 (需要监听) ...

  9. Javaweb学习笔记——(二十)——————Javaweb监听器、国际化

    Javaweb监听器     三大组件         *Servlet         *Listener         *Filter Listener:监听器         1.初次相见:A ...

  10. 超全面的JavaWeb笔记day20<监听器&国际化>

    JavaWeb监听器 三大组件: l Servlet l Listener l Filter Listener:监听器 1. 初次相见:AWT 2. 二次相见:SAX 监听器: l 它是一个接口,内容 ...

随机推荐

  1. jQuery on()方法绑定动态元素的点击事件

    之前就一直受这个问题的困扰,在jQuery1.7版本之后添加了on方法,之前就了解过,其优越性高于live(),bind(),delegate()等方法,在此之前项目中想用这个来测试结果发现,居然动态 ...

  2. @DataProvider Method 参数传递

    package roger.testng; import java.lang.reflect.Method; import org.testng.annotations.DataProvider; i ...

  3. linux 已有目录挂载磁盘

    1.查看当前硬盘使用状况: [root@gluster_node1 ~]# df -h Filesystem            Size  Used Avail Use% Mounted on / ...

  4. PHP获取上个月、下个月、本月的日期

    获取本月日期:   代码如下: function getMonth($date){ $firstday = date("Y-m-01",strtotime($date)); $la ...

  5. nyoj开心的小明

    这个问题是01背包,而对于编程之美那道是完全背包问题,在编程之美中也有一个0,1背包问题. 而且是容量是小于等于,不是等于,对于是否等于,在初始化参数时候不一样,不小于全部初始化为0,恰好等于,初始化 ...

  6. BestCoder Round #81 (div.2) B Matrix

    B题...水题,记录当前行是由原矩阵哪行变来的. #include<cstdio> #include<cstring> #include<cstdlib> #inc ...

  7. Android动态加载so文件

    在Android中调用动态库文件(*.so)都是通过jni的方式,而且往往在apk或jar包中调用so文件时,都要将对应so文件打包进apk或jar包,工程目录下图: 以上方式的存在的问题: 1.缺少 ...

  8. glusterfs 术语

    Access Control Lists Access Control Lists (ACLs) allows you to assign different permissions for diff ...

  9. Windows 2003 VPN配置步骤[转]

    一,服务器端:Windows 2003 VPN代理的配置方法如下: 1.关闭防火墙,用“管理工具”中的“服务”将“Windows Firewall/Internet Connection Sharin ...

  10. PC-飞起来!我的Windows XP——五步快速优化Windows XP

    虽然Microsoft的 Vista已经发售了快一年,但国内大部分系统用户仍使用着目前堪称完美的Windows XP.与以往的Windows操作系统一样,新安装的Windows XP可能还不在最佳状态 ...