软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Unicode 中的多语言形式

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

英文原文

Unicode 中的多语言形式
开发基于 Unicode 的全球软件应用程序

Jim Melnick
Internet Interactive Services 总裁
2000 年 9 月

内容:
 全球翻译经验
 Maribyrnong 库模型
 基于 Unicode 的导航页
 转向多语言形式
 下一步
 参考资料
 关于作者

多语言 Unicode 页最实用的一个初步用法将是,把多种语言的类似信息整理成多种形式,以进行纵览或交易。本文分析在 Unicode 中构建多语言形式的前几个步骤,并概述这些内容如何会形成未来全球多语言软件的基础。

WiredBusiness 2.0 中最近有几篇观点稍有冲突的文章,它们都是通过全球翻译成果(即传统上所说的“机器翻译”)这一多面镜来讨论多语言应用程序和全球电子商务的未来。

多语言网站的基础:全球翻译经验
Wired 曾发表过一篇论及全球翻译的专文 ("The Global Translation Boom," 2000 年 5 月) 对“全球翻译”的发展前途充分肯定,而 Business 2.0 最近发表的 Boo.com 转让大事记,表明 Boo.com 试图在世界各地的业务中心用多种外语开发网站,但最终失败了。一个前 Boo.com 人的结论是:“首先,忘掉翻译软件。这些程序都不太成熟,(从这个意义上说)它们几乎没有希望能够很快得到改进”(Tristan Louis,“这就是我在 Boo.com 认识到的问题”,Business 2.0,2000 年 8 月 8 日,第 238 页)。也许是 Wired 的专文有点太超前(请参阅该作者在 Wired 的 "Rants & Raves"(2000 年 8 月)中的回应 — 请参阅下面的
参考资料),也许 Boo.com 选择另外的多语言方法将会获得成功。

浏览一下最近的任一期 MultiLingual Computing and Technology,就会发现众多厂商和咨询公司都在寻找多语言翻译应用程序、全球化和本地化方面的合作公司。可以肯定,这些公司中至少会有一部分超过路易斯先生的估价。另外,现在就有一些网站(如 "dmoz open directory project" 和 "Globalization Research Center")在提供多语言应用程序和全球化/本地化领域的大量资源。此外,Microsoft 也已开发出 "Global Software Development" 网站(有关我们此处所提及的网站的链接,请参阅参考资料)。

不过,虽然多语言应用程序的开发取得了很大进展,但这些软件短期内仍无法达到那些需要真正全球翻译的人士的要求。从这个意义上来说,这个领域就总体而言仍未迎来“黄金时期”。但是,如果我们能适当降低期望值,不强求由机器翻译的全球化和本地化网站直接用于多语言电子商务,则我们可以就如何实现那一目标作一些有意义的讨论。但这将是一个逐步实现的过程,并且要依赖于各种补充字体、应用程序和功能逐渐出现在网上。例如,Microsoft 声称,Windows 2000 提供“完全的 Unicode 支持”,并包括“多语言用户界面 (MUI)”。帮助将目前的事务状态与将来更有前途的全球电子商务联系起来的,将是 Unicode 与基于 XML 的方案和浏览器的集成(有关这一问题的详细信息,请参阅参考资料中所列的我以前的一篇 developerWorks 文章,"Globalizing e-commerce: Open standards like XML and Unicode are promoting truly global software")。

Maribyrnong 库模型
目前,因特网上真正的多语言 Unicode 网站相对仍然比较少。虽然许多网站以多种语言提供网页,但它们大多数不包括 Unicode 编码。在大多数情况下,用户必须判断如何在英文屏幕上单击才能到达他们自己特定的语言。按我们的理解来看,“多语言”应该是用户能够很快找到他/她自己所用的语言的网页,单击(有希望)能搜索的文本,立即就能链接到以那种语言提供的其他信息。

Maribyrnong Library Services 正在开发这样的一个实验性网站。Maribyrnong 位于澳大利亚的维多利亚,墨尔本中西部。该网站包括 Unicode 中的英语、中文、越南语、阿拉伯语和阿姆哈拉语。在网站的开始几页上,有若干部分用每种语言编写,说特定语言的用户很容易找到他们自己的语言。目标是使他们能够单击那种语言的各种库资源。这种方法提供了一种模型,许多其他类型的多语言网站将来都可以模仿这一模型:用一些简短的基于 Unicode 的章节提供多种语言文字,这些文字又带有到详细信息的超链接。

Andrew Cunningham,Maribyrnong Unicode 网站幕后的一个关键人物,说明了库服务人员开发这个网站的过程。在 "Multilingual Unicode Web page development" 这篇优秀的文章中,Cunningham 定义了一个术语 "n-lingual",用它来指多语言网页,这种网页在一页中包含多种语言,“每种语言都不超过一段”。关键的地方是 "n-lingual" 页(需要时可在其中加入其他语言)作为该网站的导航页。这种导航概念对于将来的各种多语言网站都是很重要的。此外,Maribyrnong 模型可能是为多种民族群体和各种语言服务的库网站的原型。

基于 Unicode 的多语言导航页
正如 Maribyrnong 库模型展示的那样,有用的基于 Unicode 的多语言导航页应该相当简洁,每种语言简单地只有几行或几个句子。这将允许将更多的语言放在导航页中(如果条目简洁,可能多达 10 到 15 种)。与目前某些网站简单用图像列出语言标志相比,这又前进了一步。虽然有所帮助,但它本身并没有给用户提供有关该网站的任何更进一步的信息,也没有指出它可能包含哪些内容。要向真正的多语言网站靠近,就需要这种信息(即使是有限的),而对于全球电子商务,它是必需的。目标应该是使用户 — 不管使用何种语言 — 能够很容易找到那种语言,并能够毫不费力地导航到用特定语言提供更多资源的区域。

一旦某个多语言网站确定了这个导航页 "n-lingual" 概念(允许空间增大,其中 "n" 是预想的可能达到的语言数),下一步将是构建基本的 XML 标记,这些标记将使导航页的各个部分相互关联起来,并使它们与网站或数据库的任何更大的顶层通用目标相关联。

实践示范:转向多语言形式
转向这种多语言形式模型 — 如 Maribyrnong 示例 — 的第一步是将基于 Unicode 的多种语言字符放在同一个网页上。本节说明如何一起显示一系列任意的俄语、希伯来语、阿拉伯语、中文和日语字符。这些语言是特意选择的(与法语、西班牙语和德语等拉丁字符字体相对照),部分原因是为了说明 Unicode 现在所提供的极大通用性。

在下列示例中,必须将样例复制并粘贴到同一目录下的三个单独的文件中,并装载一种 Unicode 字体。图 1 展示了使用多种语言的 Unicode 字符分配的 XML 代码样例,称为 "languag2.xml"。需要用一个支持 XML 的浏览器,如 Internet Explorer 5 来查看这个文件(注:并不是任何版本的 IE5 都支持 XML;您可能必须尝试更新的版本)。"languag2.xml" 文件依赖层叠样式表 (CSS) 来实际显示这些字符。此文件的名称为 "lang.css"(请参阅图 2)。

基于 Unicode 的字符以 "&#" 开头,如果用十六进制指定,则再跟一个 "x",如果用十进制指定,则没有 "x",然后是十六进制或十进制的数字。在两种情况下,最后一个字符都是一个分号 (" ; ")。在本例中,我们使用十进制数,如希伯来语字符 ם 或中文字符 語,但是如果有该语言的 Unicode 表,则用十六进制书写也一样容易。这些都可以从 Unicode 组织出版的书或 CD 中获得,也可以在因特网上查阅 Unicode 表(请参阅参考资料)。

下一步,必须将一种基于 Unicode 的字体装载到浏览器中;在本例中我们使用 "Code2000.TTF"。一旦装载了 Unicode 字体,文件 "languag2.xml" 就被调入浏览器中。浏览器首次在大的字体文件中搜索正确的字形时可能花一些时间。随后的装载将会快一些。

图 1. languag2.xml:显示俄语、希伯来语、阿拉伯语、中文和日语字符的基于 XML 的 Unicode 样例
    
<?xml version="1.0" standalone="yes"?>
    
<?xml-stylesheet type="text/css" href="lang.css"?>

<languag2>

<russian>&#1092; &#1091; &#1083; &#1084; &#1088; &#1094; &#1095; &#1096;</russian>

<hebrew>&#1501; &#1502; &#1503; &#1504; &#1505; &#1506; &#1507; &#1508;</hebrew>

<arabic>&#1589; &#1590; &#1591; &#1584; &#1585; &#1586; &#1587;</arabic>

<chinese>&#35486; &#35490; &#35493;</chinese>

<japanese>&#12357; &#12360; &#12364; &#12365; &#12366; &#12367;</japanese> 

</languag2>

(注:图 1 中的 XML 文件是用十进制形式表示的,要显示它需要有基于 XML 的浏览器和 Unicode 字体。此样例只通过显示各种语言中的任意字符来展示功能。)

图 2. lang.css:图 1 中的 languag2.xml 所依赖的层叠样式表
    
<!-- CSS PAGE FOR languag2.xml -->

russian { display: block;
font-family: Code2000;
font-style: italic;
font-size: 36pt;
}

hebrew { display: block;
font-family: Code2000;
font-size: 36pt;
}

arabic { display: block;
font-family: Code2000;
font-size: 36pt;
}

chinese { display: block;
font-family: Code2000;
font-size: 48pt;
}
    
japanese { display: block;
font-family: Code2000;
font-size: 48pt;
}

(注:图 1 和图 2 中所列的两个文件应该放在同一个目录下,然后在支持 XML 的浏览器(如 IE5)中查看。但是,IE5 的某些版本似乎无法处理 XML;您可能需要试一试更新的版本。必须事先将一种 Unicode 字体(如 Code2000、Bitstream Cyberbit 或 Arial Unicode MS)装载到您的浏览器的“字体”中。而且,如果使用的 Unicode 字体不是 Code2000,则 lang2.css 中 "font-family" 后面所列的字体必须作相应的更改。

图 1 和 2 中的示例在同一页面生成各种语言中的任意 Unicode 字符。下面的示例(图 3)又前进了一步,它用多种语言显示单词 "year",其超链接指向(那些语言的)假想的部分。首先列出的是英文的 "year",其后依次是西班牙语、德语、俄语、中文和希伯来语的 "year",每种语言都是用 Unicode 字符表示的。

图 3. year.htm(用多种语言表示的带有象征性超链接的单词 "year")
    
<html>

<font size="6.0">

<br><br><English>
<a href="">year</a>
</English>

<br><Spanish>
<a href="">a&#0241;o</a>
</Spanish>

<br><German>
<a href="">Jahr</a>
</German>

<br><Russian>
<a href="">&#x0433;&#x043E;&#x0434;</a>
</Russian>

<br><Chinese>
<a href="">&#x5E74;</a>
</Chinese>

<br><Hebrew>
<a href="">&#x05E9;&#x05B8;&#x05E0;&#x05B8;&#x05D4;</a>
</Hebrew>
</html>

因为文件是 HTML 格式,所以调用 Year.htm 的浏览器将忽略本例中列出的语言标记:<Spanish>、<German> 等。Year.htm 可转换为带有多个元素(如各种语言中的 <Name>、<Date> 等)的一个 XML 文件,但要正确显示 XML 中的这些元素,仍然需要相应的样式表(层叠样式表或 XSL 文件)。

下一步
开发多语言形式的下一步是创建用于特定目的的各种 XML 标记。这是除了以上示例中所使用的基于语言的标记之外的标记。这些附加的 XML 标记应该指定各语言之间共享的那些元素或嵌套元素,而不管所需的应用程序或用法是什么。但是,从开始就安排好各级 XML 标记之间的关系将是很重要的。

现在就可以看到要得到一个结构良好的基于 XML 的框架可能会有多大的复杂性(从语言的数量以及它们之间的关系两方面来看)— 这种框架正是将来真正的多语言全球电子商务所需要的。

参考资料

关于作者
Jim Melnick 是 Internet Interactive Services 的总裁,这是一家专门研究多语言应用程序和设计的 Web 咨询服务公司。可以通过
[email protected] 与作者联系,也可以访问 PortableExpert.com 来查找有关多语言因特网应用程序的更多信息。




相关文章

相关软件