第8章 Java国际化
- 格式:ppt
- 大小:3.83 MB
- 文档页数:23
java国际化基础知识>>国际化同计算机编程有关的国际化是设计和编写应用程序以便可以在全球或多国环境中使用的过程。
国际化程序能够支持不同的语言以及不同格式的日期、时间、货币和其它值,而无须软件修改。
这通常涉及“软编码”或将文本组件同程序代码分离并且可能涉及可插入代码模块。
从业者通常将国际化(internationalization)简写为I18N。
原因是 internationalization 一词开始的 I 和最后的 N 之间有 18 个字母。
试着多说、多写“internationalization”一词几次,您就会欣赏这个较短版本的价值。
此外,您可能会看到“I18N´ed”作为“国际化的(internationalized)”的缩写形式。
虽然这在语法上不准确,在技术上也不正确,但是“I18N´ed”很有用,您将在包括本教程在内的文献里经常看到它。
关系数据库管理系统和操作系统可能也对国际化的某些方面提供基本支持,通常使用术语“本地语言支持(National Language Support)”或 NLS 来表示。
>>本地化本地化是设计和编写能够处理特定区域、国家或地区、语言、文化、企业或政治环境的应用程序的过程。
从某种意义上说,为特定地区编写的所有应用程序都本地化了,虽然这些应用程序大多数只支持一种语言环境。
然而,真正的本地化通常是由访问语言环境、位置、政治或其它特定组件和模块的核心代码,以及将文本翻译成适合于用户的版本来实现的。
适当国际化的程序使本地化更为便利,并为本地化提供了基础。
与将“internationalization”缩写成“I18N”相同的原因和逻辑,本地化(localization)通常缩写为L10N。
可以将处理多个国家或地区(比如说美国、加拿大、墨西哥和巴西)的税收或会计软件包国际化,使得无需对每个国家或地区重复定制显示、报表生成和其它程序。
Java国际化国际化是指应⽤程序运⾏时,可根据客户端OS的国家/地区、语⾔的不同⽽显⽰不同的界⾯,⽐如客户端OS的语⾔环境为⼤陆的简体中⽂,程序就显⽰为简体中⽂,客户端OS的语⾔环境为美国——英语,程序就显⽰美式英语。
OS的语⾔环境可在控制⾯板中⼿动设置。
国际化的英⽂单词是Internationalization,单词较长,通常简称I18N,I是第⼀个字母,18表⽰中间省略了18个字母,N是最后⼀个字母。
实现国际化的思路:标签、提⽰等字符串信息放在资源⽂件中,⼀个语⾔环境对应⼀个资源⽂件(⼀套)。
资源⽂件中存储键值对,每个资源⽂件的key都相同,value则随语⾔环境的改变⽽改变。
key是程序使⽤的部分,value是GUI要显⽰的字符串。
资源⽂件的命名⽅式:baseName.properties ⽤于单个资源⽂件baseName_language.propertiesbaseName_language_country.properties 国际化⼀般⽤这种命名⽅式语⾔代码是特定,常⽤:zh 中⽂,en 英⽂国家代码也是特定的,常⽤:CN 中国,US 美国,JP ⽇本国际化⽰例:1、在IDEA -> File -> Settings -> Editor -> file Encodings -> 设置Properties Files的编码⽅式为utf-8,默认为GBK。
(也可使⽤其它⽅式,只要.properties⽂件的编码字符集是utf-8即可)2、对src单击右键,新建⼀个mess_zh_CN.properties⽂件,输⼊:1 hello=你好!以 key=value 形式输⼊,⼀⾏⼀个键值对,默认就是字符串,不⽤加引号。
.properties⽂件中可以写注释:#注释内容3、对src单击右键,新建⼀个mess_en_US.properties⽂件(baseName要相同),输⼊:1 hello=hello!两个资源⽂件的key要⼀⼀对应(相同)。
Java框架的国际化支持简介:随着全球化的发展,软件产品越来越面临多语言、多文化环境的挑战。
Java作为一种主流的编程语言,提供了丰富的框架和工具来支持国际化。
本文将介绍Java框架中国际化(Internationalization,简称i18n)的概念和常用的国际化支持方式。
一、国际化与本地化的概念在介绍Java框架中的国际化支持之前,我们先来了解一下国际化(i18n)和本地化(L10n)的概念。
1. 国际化国际化是指使软件在不同语言、不同文化环境下具备适应能力的过程。
通过国际化,软件能够根据用户的语言、地区等偏好展现相应的内容,以提供更好的用户体验。
2. 本地化本地化是指将软件调整到特定语言和文化环境的过程。
通过本地化,软件能够根据目标用户所在的特定地区,使用该地区的语言、符号、时间格式等,以更好地适应该地区的习惯和文化。
二、Java框架中的国际化支持1. ResourceBundleJava提供了ResourceBundle类,它是一种用于加载本地化资源的机制。
通过使用ResourceBundle,我们可以根据不同语言环境加载不同的资源文件,从而实现多语言支持。
2. MessageFormat在实现国际化时,经常需要根据不同的语言环境动态地替换文本中的占位符。
Java中的MessageFormat类可以帮助我们实现这一功能,它通过解析模式字符串,并使用传入的参数来生成最终的文本。
3. LocaleLocale是Java中用于表示不同国家和语言环境的类。
通过使用Locale,我们可以根据用户的偏好来选择合适的资源文件和本地化设置。
4. Spring框架的国际化支持Spring是Java中非常流行的开发框架之一,它提供了便捷的国际化支持。
在Spring中,我们可以使用MessageSource接口来加载和管理各国语言的资源文件。
通过配置不同的资源文件,我们可以实现Spring应用程序的国际化。
Java的国际化与本地化实现全球化的应用在当今高度全球化的世界中,软件开发已成为一项重要的技术,而实现全球化的应用则是其中的一个关键需求。
Java作为一门跨平台的编程语言,具备了很强的国际化和本地化能力,可以满足全球范围内的用户需求。
一、什么是国际化与本地化国际化(Internationalization)是指将软件设计为适应不同地区、不同语言和不同文化环境的过程。
它使得软件可以轻松地适应不同的语言和文化,为全球用户提供相同的用户体验。
本地化(Localization)是指在特定的语言和文化环境下,对软件进行适当的翻译和调整,使其更符合当地用户的习惯和需求。
本地化的目标是使软件在不同地区具备更高的用户接受度和可用性。
二、Java的国际化与本地化支持Java提供了一系列的API和工具,方便开发人员进行国际化和本地化的操作。
以下是Java实现全球化应用的关键步骤和常用工具:1. 资源文件的创建:在Java中,资源文件(Resource Bundle)是一种存储多语言文本的文件,用于实现国际化。
开发人员可以根据语言和地区的需求,创建不同的资源文件,存储各种语言版本的文本信息。
2. 文本的翻译:通过资源文件,开发人员可以将应用中的文本标识符和对应的翻译文本关联起来。
在应用程序运行时,根据用户的地区设置,Java会自动加载对应的资源文件,并将文本内容做相应的替换。
这样,用户可以在不同语言环境下享受到同样的功能和体验。
3. 日期、时间和数字的格式化:Java提供了一系列强大的工具类,用于格式化日期、时间和数字等信息。
开发人员可以根据用户的地区设置,将这些信息转换成符合当地习惯的格式,以便用户更直观地理解和使用。
4. 界面的本地化:除了文本内容的本地化外,Java还支持界面元素的动态本地化。
通过使用Java的GUI工具包,开发人员可以根据用户的地区设置,自动调整界面元素的布局、图标等,以便用户更顺利地使用应用。
详解Java中⽤于国际化的locale类1. Locale 介绍Locale 表⽰地区。
每⼀个Locale对象都代表了⼀个特定的地理、政治和⽂化地区。
在操作 Date, Calendar等表⽰⽇期/时间的对象时,经常会⽤到;因为不同的区域,时间表⽰⽅式都不同。
下⾯说说Locale对象的3种常⽤创建⽅式。
(1)获取默认的Locale使⽤⽅法:Locale locale = Locale.getDefault()(2)直接使⽤Locale的静态对象Locale.java中提供了以下静态对象public static final Locale CANADApublic static final Locale CANADA_FRENCHpublic static final Locale CHINApublic static final Locale CHINESEpublic static final Locale ENGLISHpublic static final Locale FRANCEpublic static final Locale FRENCHpublic static final Locale GERMANpublic static final Locale GERMANYpublic static final Locale ITALIANpublic static final Locale ITALYpublic static final Locale JAPANpublic static final Locale JAPANESEpublic static final Locale KOREApublic static final Locale KOREANpublic static final Locale PRCpublic static final Locale ROOTpublic static final Locale SIMPLIFIED_CHINESEpublic static final Locale TAIWANpublic static final Locale TRADITIONAL_CHINESEpublic static final Locale UKpublic static final Locale US使⽤⽅法:下⾯的Locale对象是对应 “中国(⼤陆)”的Locale locale = Locale.SIMPLIFIED_CHINESE(3)通过Locale的构造函数创建Locale对象Locale的构造函数共有3个。
Java国际化(i18n)Java国际化(i18n)最近在做⼀个⽹站国际化的功能。
⽤Java做开发,使⽤spring+velocity.Java提供了对i18n的⽀持,spring对其做了集成,可以很⽅便的配置。
主要思想就是根据语⾔来读取不同的配置⽂件,来显⽰对应的⽂本。
主要步骤如下:1. ⽤两个properties⽂件来保存“符号”到对应语⾔的映射。
如messages_en.properties和messages_zh.properties, 将其放到⼯程的classPath 下#messages_en.propertiestitle=service introduction#messages_cn.propertiestitle=\u670d\u52a1\u8bf4\u660e 注意中⽂要使⽤unicode编码2. 配置spring的xml⽂件:spring提供了多种国际化的⽀持⽅式,如基于浏览器,session和cookie等。
项⽬中使⽤cookie⽅式<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver"><property name="cookieMaxAge" value="604800"/><property name="defaultLocale" value="zh_CN"/><property name="cookieName" value="lang"/></bean> 声明1中的资源⽂件<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"><property name="basename" value="messages"/><property name="useCodeAsDefaultMessage" value="true" /></bean> 使⽤拦截器来处理请求,让对应的页⾯国际化<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />...<property name="interceptors" ref="localeChangeInterceptor"></property>... 或者<mvc:interceptors><bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" /><mvc:interceptor>...</mvc:interceptor></mvc:interceptors>然后在vm页⾯中调⽤占位符就可以了#springMessage("title")3. 另外可以写⼀个controller来切换语⾔@RequestMapping("/lang")public String lang(HttpServletRequest request, HttpServletResponse response) throws Exception {String langType = request.getParameter("langType");if ("en".equals(langType)) {cookieLocaleResolver.setLocale(request, response, Locale.ENGLISH);} else {cookieLocaleResolver.setLocale(request, response, Locale.CHINA);}return null;}在Java国际化(i18n)中,vm页⾯显⽰内容需要使⽤ #springMessage("title")实际运⾏时发现页⾯输出$springMacroRequestContext.getMessage($code)。
java枚举值的国际化方法-回复Java枚举值的国际化方法在日益全球化的环境下,软件开发需要考虑不同国家和地区的语言和文化差异。
Java作为一种面向对象的编程语言,提供了丰富的国际化支持,使开发人员能够轻松地将应用程序适应不同的语言环境。
本文将重点讨论java枚举值的国际化方法。
枚举类型是一种特殊的数据类型,它可以定义一组相关的常量。
在国际化的场景下,枚举类型通常用于表示国际化资源的键。
例如,在一个多语言的应用程序中,可以定义一个名为"Gender"的枚举类型来表示性别的不同取值,例如男性和女性。
在默认语言环境下,可以使用枚举值本身作为资源的键,但是在其他语言环境下,我们需要将其翻译为相应的本地化文本。
以下是一步一步解释如何实现java枚举值的国际化。
步骤1:创建资源文件首先,我们需要创建一个资源文件用于存储不同语言环境下的本地化字符串。
资源文件的命名约定是基本名称后跟下划线和ISO 639语言代码,再跟下划线和ISO 3166国家代码。
例如,对于英语(美国)的资源文件,命名约定是"messages_en_US.properties"。
资源文件的内容是以键值对的形式保存的,分别表示枚举值和翻译后的文本。
例如:Gender.MALE=MaleGender.FEMALE=Female步骤2:加载资源文件在Java中,我们可以使用ResourceBundle类加载资源文件。
ResourceBundle类提供了一种方便的方式来加载不同语言环境下的资源。
我们可以使用getBundle()方法来加载资源文件,传递资源文件的基本名称和Locale对象,该对象表示特定的语言环境。
例如,要加载英语(美国)的资源文件,我们可以使用以下代码:ResourceBundle bundle = ResourceBundle.getBundle("messages", new Locale("en", "US"));步骤3:获取本地化文本一旦资源文件被加载,我们可以使用getString()方法从资源文件中获取相应的本地化文本。
Java中的国际化与本地化处理随着全球化的发展,软件开发也更加注重满足不同地域、不同语言用户的需求。
在Java开发中,国际化(Internationalization)和本地化(Localization)成为了重要的开发技术。
本文将介绍Java中的国际化与本地化处理方法及其应用。
一、国际化与本地化的定义和区别国际化是指将应用程序设计成能适应不同语言、地区和文化习惯的能力。
而本地化是指根据不同地区的特定需求进行调整,使应用程序更符合当地的习惯和语言要求。
国际化的目标是将应用程序解耦合,使得各种语言、地区和文化特点的切换不需要重新编译或修改源代码。
本地化则是通过提供特定地区的资源文件,使应用程序在不同地区表现出相应的语言和习惯。
二、Java中的国际化与本地化处理Java提供了一套完善的国际化与本地化处理的API,使得开发者能够轻松地实现多语言和多地区的支持。
1. 资源文件的使用Java使用.properties文件来存储不同地区的文本资源和其他静态资源。
通过使用Java的ResourceBundle类,可以根据当前的Locale(地区)加载相应的资源文件。
资源文件的命名按照一定的约定,例如:message_en_US.properties表示英语(美国)的资源文件,message_zh_CN.properties表示中文(中国)的资源文件。
2. 消息的国际化处理在Java中,可以使用MessageFormat类来格式化带有占位符的文本。
通过使用占位符,可以根据不同的语言和地区动态地替换文本中的参数。
3. 日期和时间的本地化处理Java中的DateFormat类提供了日期和时间的本地化处理能力。
通过设置不同的Locale,可以根据不同地区的习惯显示特定格式的日期和时间。
4. 数字和货币的本地化处理Java中的NumberFormat类用于格式化数字和货币。
根据不同的Locale,可以以特定的方式显示数字和货币。
java枚举值的国际化方法-回复Java枚举值的国际化方法引言:国际化是当今软件开发中的一个重要问题,随着全球化的发展,软件需要能够适应不同语言和文化环境。
Java作为一种跨平台的编程语言,已经提供了多种工具和技术来支持软件的国际化。
在Java中,枚举类型是一种常用的数据结构,通过枚举类型可以定义一组有限的常量值,并使用它们来表示某个特定的状态或选项。
本文将介绍如何实现Java枚举值的国际化,以便让软件在不同语言环境下显示对应的文本。
一、理解枚举类型和国际化枚举类型是一种特殊的类,它的实例是固定的、有限的,并且在运行时不能改变。
在Java中,我们可以使用关键字“enum”来定义枚举类型。
例如,我们可以定义一个表示一周中的星期的枚举类型:enum Weekday {MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY}国际化(Internationalization),也称为i18n,是指将软件设计得可以适应不同语言和地区的需求。
国际化的目标是消除软件的地域差异,使之适用于全球范围内的用户。
在国际化中,常常需要将软件中的文本等资源进行本地化处理,以使得用户可以使用自己熟悉的语言来操作软件。
二、资源束和属性文件在Java中,我们可以使用属性文件(Property File)来存储软件中需要本地化的文本等资源。
属性文件通常以.key-value的形式存储,其中key 是资源的标识符,value是对应的文本内容。
在使用属性文件时,我们通常会使用资源束(Resource Bundle)来管理它们。
资源束是一个包含了相同语言、相同区域的属性文件的集合。
在Java中,资源束通常使用.properties扩展名的属性文件来定义。
例如,我们可以创建一个名为messages.properties的属性文件,其中包含了界面上需要显示的文本内容。
对于枚举类型的国际化,可以为每个枚举常量定义一个对应的属性值。