Ja中的国际化问题

更新时间:2024-03-23 作者:用户投稿原创标记本站原创 点赞:2872 浏览:9115

摘 要 :ja编程中如何做到国际化,也就是一次编译,到处运行,这个问题始终困扰着大家,不光是ja本身这个系统的问题,同样也是开发人员在写程序的时候要掌握的技术难点.

关 键 词 :国际化 本地化

中图分类号:F8 文献标识码:A 文章编号:1007-9416(2013)01-0189-01

1.概述

(1)国际化(Internationalization):就是设计一个应用的流程,以使之能够不经过工程修改就可以使用于各种不同的语言和区域场所.(2)本地化(Localization):通过添加特定场所的组建和翻译文本来使软件适用于特定的场所和语言的过程.(3)本地化那些内容:当一个软件产品需要在全球范围应用的时候,得考虑在不同的地域和语言环境下面的使用情况(也就是国际化问题),最简单的要求就是UI上的信息上能用本地化语言来显示,这主要包括操作界面的风格问题、提示和帮助语言的版本问题、界面写作个性化问题等.

Ja语言内核基于Unicode2.1提供了对不同国家和不同语言文字的内部支持,由于先天的原因,Ja对于国际化的支持远远要比C/C++来的优越.

2.几个术语

(1)i18n(Internationalization):就是internationalization,国际化,由于首字母"i"和末尾字母"n"间有18个字符,所以简称i18n.internationalization指为了使应用程序能适应不同的语言和地区间的变化而不作系统性的变化所采取的设计措施,即:将依赖于语言和地区的代码与和语言无关的代码分离开来的过程.一旦程序完成了这项工作,它只需很少的工作就可以适用于不同语言的国家和地区.(2)l10n(Localization):就是localiz ation,本地化,由于首字母"l"和末尾字母"n"间有10个字母,所以简称l10n.localization指为了使应用软件能够在某一特定语言环境或地区使用而加入本地特殊化部件和翻译后文本的过程,即:使程序适用于特定语言或地区的过程,它不仅包括文本的翻译,还包括特定于文化的数据项格式的转换.(3)locale:简单来说是指语言和区域进行特殊组合的一个标志.

3.Ja中如何解决国际化的问题

(1)应用被国际化的基本要求:要被国际化,一个应用应该能够.

1)自动地区分不同的场所;2)使用同一个可执行包根据不同的场所显示相应的信息和标签;3)在不重新编译的情况下提供对新的场所的支持;4)自动格式化场所敏感的条目,比如日期和货币,为相应的场所和语言支持的格式.

(2)Ja语言对国际化的支持:

另外由于Ja语言具有平台无关、可移植性好等优点,并且提供了强大的类库,所以Ja语言可以辅助我们解决上述问题.Ja语言本身采用双字节字符编码,采用大汉字字符集,Ja本身在设计时,即针对国际化之需求采用Unicode作为系统内部的编码,这就为解决国际化问题提供了很多方便.


4.实现国际化程序的基本思路

4.1 国际化的基本策略

(1)利用locale类区分地理地区:在Ja平台中,每种语言和地区在Ja中都存在一个标识符(参考上面的locale说明),每个与本地化敏感的类都可以保存它自己的与本地化有关的信息,所有对本地化敏感的操作都可以明确指定一个地区标识符作为参数,这样,就大大简化了多语言程序.(2)利用资源文件文件来分离与语言有关的内容:从设计角度来说,只要把程序中与语言和文化有关的部分分离出来,加上特殊处理(单独提取出来并放到资源文件中),就可以部分解决国际化问题.(3)采用参数化的手段来写作界面:在界面风格的写作方面,我们可以把参数化的元素,如字体、颜色等,存储在数据库里,以便为用户提供友好的界面;如果某些部分包含无法参数化的元素,那么我们可能不得不分别设计,通过有针对性的编码来解决具体问题.

4.2 国际化程序的特征

(1)文本元素在程序中不进行硬编码.它们存储于源代码之外,可自动进行动态检索;(2)通过使用附加的本地化数据,同一可执行程序可在世界各地运行;(3)支持新的语言时无须重新编译;(4)与文化有关的数据(如日期和货币),其格式根据最终用户的地区和语言而定并可以迅速进行本地化.

5.Ja中与国际化问题相关的包与类

在用Ja解决国际化问题的过程中,可能利用到的主要的类都是由ja.util包提供的.该包中相关的类有Locale、Resource Bundle、ListResourceBundle、PropertyResourceBundle等.

其中的各个类所提供的主要功能如下:

Ja使用兩個字符串代碼來表示不同的区域,分別是「语言」和「国家」,这两个代码遵守国际标准组织的标准,语言是遵守ISO-639的兩個小写英文字母來表示,而国家則使用ISO-3166的两个大写字母來表示.依照此标准,中文的代码是zh、英文的代码是en 、台湾的区域代码是TW、美国的区域代码是US、中国大陆的区域代码是CN.

语言代码 说明 国家代码 说明

De German CN China

es Spanish CA Canada

en English DE Germany

fr French FR France

ja Japanese IN India

jw Janese US United State

ko Korean

zh Chinese

比如,对讲法语的加拿大人可以创建这样的场所:

Locale locale等于new Locale("fr","CA");

比如,中国大陆可以创建这样的场所:

Locale locale等于new Locale("zh","CN");

相关论文范文