j2ee国际化数据方式
Posted 情似雨餘黏地絮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了j2ee国际化数据方式相关的知识,希望对你有一定的参考价值。
静态国际化数据,在msg(定义数据名)_zh(语言缩写)_CN(国家缩写).propertices文件中自定义相关数据
然后进行调用
/* * 静态国际化 */ @Test public void testInternational_static() throws Exception { //当前语言环境 // Locale locale = Locale.CHINA; Locale locale = Locale.US; //创建工具类对象ResourceBundle ResourceBundle resourceBundle = ResourceBundle.getBundle("com.xinzhi.test.msg" , locale); String string = resourceBundle.getString("hello"); System.out.println(string); }
下面是其他类型数据的国际化方法
/* * 数字国际化 */ @Test public void testInternational_number() throws Exception { // Locale locale = Locale.CHINA; Locale locale = Locale.US; NumberFormat numberFormat = NumberFormat.getNumberInstance(locale); String format = numberFormat.format(1000000000); System.out.println(format); } /* * 货币数字国际化 */ @Test public void testInternational_currency() throws Exception { // Locale locale = Locale.CHINA; Locale locale = Locale.US; NumberFormat numberFormat = NumberFormat.getCurrencyInstance(locale); String format = numberFormat.format(100); System.out.println(format); } /* * 货币数字计算$100*10 */ @Test public void testInternational_currency2() throws Exception { // Locale locale = Locale.CHINA; Locale locale = Locale.US; String currencyString = "$100"; int num = 10; NumberFormat numberFormat = NumberFormat.getCurrencyInstance(locale); Number parse = numberFormat.parse(currencyString); System.out.println(parse.intValue() * num); } /* * 时间国际化 */ @Test public void testInternational_time() throws Exception { // Locale locale = Locale.CHINA; Locale locale = Locale.US; int dateStyle = DateFormat.FULL; int timeStyle = DateFormat.SHORT; DateFormat dateTimeInstance = DateFormat.getDateTimeInstance(dateStyle, timeStyle, locale); String format = dateTimeInstance.format(new Date()); System.out.println(format); }
在jsp中使用国际化:
将资源文件在msg(定义数据名)_zh(语言缩写)_CN(国家缩写).propertices处理完成后
在需要国际化的jsp界面中插入如下代码:
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>//用于加载jstl <fmt:setLocale value="${pageContext.request.locale }"/>//设置使用的语言场景(在请求域中获取) <fmt:setBundle basename="com.xinzhi.utils.msg" var="varbundle"/>//拿到资源文件路径,定义资源变量 <fmt:message key="title" bundle="${varbundle}"></fmt:message>//根据键来获取相应的值
/**
* jsp中数字国际化,保留两位有效数字,没有的用0填充,用#.##则表示保留两位数字但是不保留0
*/
<fmt:formatNumber pattern="0.00" value="100"></fmt:formatNumber>
/**
* jsp中日期国际化
*/
<fmt:formatDate value="2017-05-13" pattern="yyyy-MM-dd"/>
以上是关于j2ee国际化数据方式的主要内容,如果未能解决你的问题,请参考以下文章
ngx-translate实现国际化:this.translate.use()this.translate.get()this.translate.instant()onLangChange(代码片段