Java 版 (精华区)

发信人: allen (夏夜晚风·原来的我), 信区: Java
标  题: [蔡学镛][Learning Java the O'Reilly's Way]19
发信站: 哈工大紫丁香 (2002年08月21日00:50:30 星期三), 站内信件

发信人: NullPointer (宁与骐骥亢轭,不随驽马之迹)
发信站: BBS 水木清华站 (Sun Jun 30 19:27:37 2002)

Learning Java the O'Reilly's Way (Part XIX)
Java Internationalization
「写程序很难,写中文的程序更难」这是许多程序员的心声。许多
平台、语言、编译器、数据库、驱动程序 ...
对于英文以外的语言支持都不好,而使用双位的东方语言更是常常
会遇到乱码的情况,这正是因为这些软件在开发时,没考虑到国际
化(internationalization,i18n)的需求所造成。当这些不够国
际化的软件欲进入另一个国家的市场,必须额外花费更多心力进行本
土化(localization,l10n)的工作,才能符合当地的需求。

软件市场的国际藩篱早已经被打破,所以在规划软件的同时,最好
能有 i18n 的考量。近年来,IBM 和微软的产品 i18n 得相当彻底
,所以不太需要花时间进行各地区的本土化,这些公司的软件在英
文版上市的同时,世界各地的版本几乎都能同时上市。i18n不但减
少他们各国版本在本土化时所需要的人力,节省成本,更可以让产
品提早上市,抢得商机。比方说:几年前,MS-Windows和MS-Office
 还没有全面 i18n 之前,中文版上市时间会延迟数月甚至半年以上。

许多人以为软件本土化只是软件和手册的文字翻译罢了,如果你也
这么认为,那么就太天真了。各国不同的不只是文字语言,还有习
惯、文化、法规 ...。所以单纯的翻译只是本土化的第一步,后续
还有许多工作要进行。设计时没有 i18n考量的软件,在进行本土化
时会遇到许多困难,甚至很有可能要改写原始码。不但成本大幅提
高,上市日期延后,甚至会有更多的 bug 出现。也因此,软件在一
开始设计时,最好就把 i18n 考量进来,虽然会在初期带来些许的
不便,但是结果却相当值得。

Java 不但希望能跨平台,也希望能跨国际、族群。所以 Java 对于
多国语言有相当好的支持,让我们能开发出不同语言的使用者都能
使用的软件。Java 对于 i18n 的支持,是相当先进的,除了全面采
用 Unicode 并提供许多编码转换之外,更内建许多机制(最为人所
知的是 Locale 和String Boundle),让程序员能很简单地开发出 
i18n 的程序。

比较可惜的是,Java 在语音的部分对于 i18n 的支持并不佳,毕竟
语音辨识和语音合成的技术门槛太高,而 Java Speech 也很久没有
动静了。我希望在以后 Java Speech API出新版本时,能有完善的 
i18n 考量,而且各国语音的实作版本也能陆续推出,在这方面最有
希望的是 IBM。

由 O'Reilly 出版,Andrew Deitsch 与 David Czarnecki 所合着的
「Java Internationalization」一书,广泛地涵盖了 Java i18n 
相关的主题。本书的各章节介绍如下:

第一章:讨论国际化和本土化的一般观念,以及 Java 对国际化的支持。
第二章:分析世界各地具代表性的书写方式,包括西方的(由左至右)
        、东方的(任意方向)、和中东的(双向混合)。这章可以让
        你大开眼界。
第三章:讨论 java.util.Locale 相关的用法。所谓的 Locale 指的是
        :一个特定的地区(以政治、经济、宗教、语言 ... 来区分)。
第四章:讨论如何透过 Resource Boundle 来将程序和相关资源隔离。
        许多人都以为资源指的是字符串,但其实也可以是任何对象。
第五章:各种格式(货币符号,数字格式,日期时间格式 ...)的使用。
第六章:Unicode、各种编码与转码相关的议题。如果你常遇到中文变
        乱码的问题,这一章的知识对你来说应该会有帮助。
        《Java I/O 技术》一书对此已经有相当详细的讨论。
第七章:叙述文字的比对与排序相关的议题。
第八章:讨论字型和呈现文字的方式。部分主题在《Java 2D 图学技术》
        一书中有更完整的讨论。
第九章:介绍图形化的使用者接口对于 i18n 应该做的改变。不同的国家
        ,可能会需要不同风格的 GUI。本章对此做一个概念性的解说,
        更详细的 GUI 信息可以从《Java Swing基础篇》和《Java Swing
        进阶篇》中获得。
第十章:讨论利用 Input Method Framework 来设计输入法,让 Java 程序
        所使用的输入法也能不受操作系统的影响。
第十一章:国际化的 web 程序设计。让 web(applet、servlet、JSP)也
          能够国际化,从不同的地方读取会得到不同语言的版本。
第十二章:叙述 Java 未来还可能针对 i18n 做出哪些改进。
附录 A:各种语言和国码
附录 B:Java 所支持的编码方式
附录 C:Unicode 的编码分类
附录 D:Java i18n 相关的 API 列表
附录 E:Java 各版本对于 i18n 支持的变革

这是一本 i18n 的入门书,不是百科全书,许多时候你会需要更进阶的
信息,所以本书最后还列出许多参考资料。本书虽然是以 Java 为程序
语言,但是书中所提到的这些概念,其实其它程序语言也可仿效采用。
特别是,目前专门论述 i18n 的书很罕见,所以本书弥足珍贵。
关于编码和文字的部分,我建议各位在看完本书之后,继续看下面这两本书:

·  The Unicode Standard, Version 3.0 (published by Addison-Wesley)

·  CJKV Information Processing (published by O'Reilly)

关于文化习俗,你还需要另外收集资料来看,特别是文明悠久的地区,
例如:以色列、埃及、阿拉伯、印度 ...
等国家的文化习俗比较不为我们所熟知。而且因为有些国家比较激进一
点,所以尚未全盘了解文化习俗之前,不要随便推出当地版本,否则天
晓得会出什么乱子。辟用几位当地人员作为本土化咨询顾问,似乎是可
行的管道。

--


 PP好帅啊 
 丸子哥好酷阿 

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 218.7.25.106]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:5.404毫秒