`
勤业思行
  • 浏览: 83763 次
  • 性别: Icon_minigender_1
  • 来自: 贵阳
社区版块
存档分类
最新评论

程序的国际化

    博客分类:
  • j2se
阅读更多

程序的国际化:当一个程序或Web应用需要面对多个国家或区域的用户时,由于不同国家或地区的用户的文化习惯不同,具体表现在使用的文字、货币、时间、数字等的表现格式不同。例中文和English,¥和$.此时就不可避免的需要实现程序的国际化来满足用户的需求。我们也可以把国际化简称为I18N,这是因为国家化单词internationalization的首字母"i"和尾字母"n"之间有18个字母。所以,国际化是一个跨地区或国家的企业级应用必不可少的功能。Java提供了非常好的国际化支持。

 一、Java(J2SE)的国际化: 在Java中,Java是第一个设计成为全面支持国家化的语言,从一开始,Java就具有进行有效国际化的一个必须的重要特性:使用Unicode来处理所有的字符串。关于Java更多国际化的信息可以查看网站:http://www.joconner.com/javai18n和Sun的官方网站:http://java.sun.com/javase/technologies/core/basic/intl .

国际化主要涉及信息有:数字格式、日期和时间、排序、文本文件和字符集、本地语言和资源文件。

   在Java语言中专门提供了用于解决国际化问题的API,这些API类主要位于java.text和java.util包中。 

1、Locale类:一个Locale实例对象代表了一个特定的地理、政治或文化上的区域。

Locale的构造方法:

java.util.Locale(java.lang.String)

java.util.Locale(java.lang.String, java.lang.String)

 java.util.Locale(java.lang.String, java.lang.String, java.lang.String)

 其中第一个String是language,表示有效的ISO语言代码,一般用两个小写字母表示。第二个String表示国家或地区,一般使用两个大写字母表示。第三个string表示特定于供应商和浏览器的代码,WIN表示windows,MAC表示Macintosh,POSIX表示POSIX。

eg: Locale enLocale=new Locale("en");

        Locale enLocale=new Locale("es", "ES","Traditional_WIN")

Locale常量:虽然可以使用Locale类的构造方法创建Locale实例对象,但是需要指定语言代码和国家代码作为构造方法的参数,这比较麻烦。这里Locale提供了一些常量,这些常量分别对应了一些提前创建好的表示不同语言和国家地区的Locale实例对象。例,Locale.CHINESE表示一个语言为汉语的Locale实例对象,而Locale.US表示一个国家或地区为美国的Locale实例对象。具体参见JDK文档。

public static Locale getDefault()返回操作系统的当前Locale实例对象。

public static Locale[] getAvailableLocales():返回当前操作系统所有已安装的语言环境数组。

还有相应的getCountry()、getLanguage()、getVariant()、getDisplayCountry等。

2、Format类:Format有一个抽象类。他的几个子类:NumberFormat、MessageFormat、DateFormat分别处理数字、字符串、日期的格式化问题。具体看jdk文档。

3、ResourceBundle类:用于描述一个资源包。资源文件的获取来实现国际化信息显示。同时,当涉及中文字符时,要求资源文件中的中文字符转换为Unicode编码。可用JDK的native2ascii应用程序来进行编码。同时,也可以一次性的转换整个资源文件。调用命令:
  native2ascii -encoding gb2312 temp.properties MyResources_zh.properties

 运行将在当前目录下生成temp.properties资源文件的Unicode编码文件MyResource_zh.properties。当出现占位符时可用MessageFormat类来处理。

二、Web应用的国家化

实现Web应用的国际化有两种方式:

1、针对不同语言和地区的用户开发不同的JSP网页版本,当用户请求资源时,根据请求消息中国携带的本地信息为用户提供合适的版本。

2、针对本地环境敏感的资源数据(如错误信息提示、菜单、按钮上的标题等文字信息),从网页中分离出来。放在.properties属性资源文件中。对于应用中的数字、货币、日期和时间等本地敏感的数据,可以通过占位符的方式设置它们的格式类型和格式模式。

针对上面两种方法:如果整个Web应用中有大量的数据需要根据用户的本地信息进行显示,则采用第一种方式;否则,采用第二种方式。也可以将两种方式结合使用。

 

 

 

 

 

下面以一个登录请求为例的操作流程:

 

 

 附件中是一个简单的I18nJava 项目的jar包,项目的开发工具Eclipse。

  • 大小: 26.1 KB
分享到:
评论

相关推荐

    Qt应用程序国际化步骤

    本篇将详细介绍Qt应用程序国际化的步骤,以及如何通过示例代码实现静态加载和动态切换语言。 一、Qt的国际化原理 Qt的国际化基于Qt的QTranslator类,它负责处理翻译工作。QTranslator可以从翻译文件(.qm文件)中...

    winform程序国际化

    WinForm程序国际化是一种技术,使得同一个应用程序可以根据用户的地区设置显示不同的语言内容,从而提供更友好的用户体验。在本文中,我们将深入探讨WinForm程序国际化的概念、实现方法以及相关工具和资源。 首先,...

    应用程序国际化

    应用程序国际化,特别是针对iOS平台的国际化,是一项至关重要的任务,它允许开发者构建的应用程序能够适应全球用户的不同语言和文化需求。iOS国际化不仅涉及到文本翻译,还包括日期、时间、数字、货币格式以及图像和...

    Qt程序国际化(简单实用)

    Qt 程序国际化 Qt 程序国际化是指在 Qt 应用程序中实现多语言支持的过程。通过使用 QTranslator 类,开发者可以轻松地将 Qt 应用程序国际化,使其能够支持多种语言。 Qt 程序国际化的主要步骤: 1、在 Qt 应用...

    程序国际化.zip

    在IT行业中,程序国际化是一个非常重要的议题,尤其是在全球化的今天,软件产品需要适应不同国家和地区用户的语言和文化习惯。Android平台提供了丰富的API和支持,使得开发者能够轻松地将应用程序转化为多语言版本,...

    Java程序国际化教程源码下载

    以下是对Java程序国际化关键知识点的详细解释: 1. **资源包(Resource Bundle)**:资源包是Java国际化的核心,它存储了特定语言环境下的文本、消息、符号和其他用户界面元素。在Java中,资源包通常是`.properties...

    Java 程序国际化教程+源码

    Java程序国际化还包括日期和时间的格式化,这可以通过`java.time.format.DateTimeFormatter`类实现。例如: ```java DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss", new ...

    小程序国际化方案 , The internationalizational (i18n) library for wechat miniprogram.zip

    小程序国际化方案 / The internationalizational (i18n) library for wechat miniprogram小程序-i18n微信小程序的国际化 (i18n) 方案。为小程序的双线程模型定制,使用 WXS 环境作为 WXML 国际化的运行时,很大程度...

    Qt应用程序国际化工程示例

    Qt应用程序国际化工程示例

    设计Java EE应用程序-- J2EE应用程序国际化和本地化.doc

    Java EE应用程序的国际化和本地化是开发面向全球市场的软件的关键组成部分。这涉及到设计能够适应不同语言、文化习惯、货币和日期格式的应用程序。在Java平台上,实现这一目标主要依靠Java的国际化API,如`java.util...

    Struts2/应用程序 国际化

    文档中介绍了Struts2中国际化的实现原理和使用方法,同时介绍了应用程序的国际化的实现思路和方法以及示例!

    iOS应用程序国际化

    iOS应用程序的国际化是一个重要的开发环节,它涉及到将应用的内容、界面和功能适配到不同的语言和地区,以便全球用户都能方便地使用。这篇文章将深入探讨iOS国际化的基本概念、关键技术和最佳实践。 首先,我们需要...

    Android程序国际化 添加多语言支持.doc

    Android程序的国际化是为了让应用能够适应全球不同语言环境的用户,使得非英语国家的用户也能无障碍地使用。Google在Android平台上提供了完善的国际化支持机制,开发者无需手动判断设备的语言环境,只需按照特定的...

    微信小程序国际化与本地化的实现策略

    微信小程序的国际化和本地化是确保应用能够适应不同国家和地区用户需求的重要步骤。通过合理的资源管理、动态加载和用户交互设计,可以有效提升用户体验。希望本文的分享能够为你的开发工作提供帮助,使你的小程序...

    C语言程序的国际化:策略、工具与实践

    本文详细介绍了C语言程序国际化的策略、工具和实践,并通过示例代码展示了如何使用gettext库进行消息翻译和处理文化习俗。通过这些方法,开发者可以构建出能够支持多语言和文化差异的C语言程序,满足全球用户的需求...

    eclipse国际化插件

    Eclipse国际化插件是Java开发者实现应用程序国际化的重要工具,它简化了资源文件的管理,提高了翻译效率,并且能与MyEclipse这样的高级开发工具无缝集成。通过熟练掌握和应用这些工具,开发者可以创建出真正全球化...

    iOS开发------程序实现国际化Localizable - iPhone手机开发技术文章 - 红黑联盟1

    2. 应用程序国际化:Localizable可以用于实现应用程序的国际化,满足全球范围内的应用需求。 3. 文本资源管理:Localizable可以用于管理应用程序的文本资源,提高开发效率和灵活性。 Localizable是一种强大且灵活...

Global site tag (gtag.js) - Google Analytics