快速业务通道

Java模式设计之多态模式与多语言支持 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
tatic void main(String[] args)    {      LingualResource ling =        LingualResource.getInstance("en" , "US");      String usDollar = ling.getLocaleString("USD");      System.out.println("USD=" + usDollar);      LingualResource lingZh =        LingualResource.getInstance("zh" , "CH");      String usDollarZh = lingZh.getLocaleString("USD");      System.out.println("USD=" + usDollarZh);    } }

代码清单6、客户端类LingualResourceTester的源代码。

如果用户是美国用户,那么在JSP网页中可以通过调用getLocaleString()方法得到相应的英文说明。比如:

LingualResource ling = LingualResource.getInstance("en" , "US"); String usDollar = ling.getLocaleString("USD");

就会返还

US Dollar

相应地,如果用户是中国大陆的用户,那么在JSP网页中可以通过调用getLocaleString()方法得到相应的中文说明。比如,

LingualResource ling = LingualResource.getInstance("zh" , "CH"); String usDollar = ling.getLocaleString("USD");

就会返还

美元

Resource文件的内容

为美国英文准备的Resource文件res_en_US.properties的内容如下:

USD=US Dollar

JPY=Japanese Yen

   代码清单7、Resource文件res_en_US.properties的内容。

为简体中文准备的Resource文件res_zh_CH.properties的内容如下:

USD=美元

JPY=日元

代码清单8、Resource文件res_zh_CH.properties的内容。

Java模式设计之多态模式与多语言支持(7)

时间:2010-12-13

问答题

第一题、请问为什么Internationalization又简称作i18n?

第二题、请给出一个根据语言代码和地区代码将数目字格式化的例子。

第三题、请给出一个根据语言代码和地区代码将货币数目字格式化的例子。

第四题、请给出一个根据语言代码和地区代码将百分比格式化的例子。

问答题答案

第一题答案、在英文字Internationalization中,第一个字母i和最后一个字母n之间有18个字母,因此Internationalization又简称作i18n。

第二题答案、Java库java.text.NumberFormat类提供了对数目字格式的支持,下面给出的就是解答的类图:

Java模式设计之多态模式与多语言支持 - 编程入门网

图8、对数目字格式支持的解答。

程序的源代码如下:

package com.javapatterns.multilingual.number; import java.util.Locale; import java.text.NumberFormat; public class NumberFormatTester {   static public void displayNumber(     Double amount, Locale currentLocale)   {     NumberFormat formatter;     String amountOut;     formatter =      NumberFormat.getNumberInstance(currentLocale);     amountOut = formatter.format(amount);     System.out.println(amountOut + "  "       + currentLocale.toString());   }   static public void main(String[] args)   {     displayNumber(new Double(1234567.89),       new Locale("en", "US"));     displayNumber(new Double(1234567.89),       new Locale("de", "DE"));     displayNumber(new Double(1234567.89),       new Locale("fr", "FR"));   } }

代码清单9、Resource文件res_zh_CH.properties的内容。

在运行时,程序回打印出下面的结果:

456,789%  en_US

456.789%  de_DE

456 789%  fr_FR

代码清单10、Resour

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号