---
title: "使用 Altova MissionKit 实现国际化"
date: "2009-06-01"
categories: 
  - "technology"
tags: 
  - "missionkit"
  - "stylevision"
  - "xml-editor"
  - "xmlspy"
description: 利用Altova MissionKit工具，如XMLSpy和StyleVision，探索国际化XML应用程序的策略，从而提高其对不同受众的可用性。
---
Status: #blog

Tags:  #missionkit #stylevision #xml-editor #xmlspy

Categories: [development](/blog/zh/category/development.md)
# 使用 Altova MissionKit 实现国际化

_以下文章由**彼得·雷诺兹**撰写，他是TM-Global的首席执行官兼翻译管理顾问，以及Kilgray Translation Technologies的执行董事。他是一位爱尔兰国籍人士，现居住在华沙，拥有公开大学的理学士和工商管理硕士学位，是本地化和翻译行业的资深人士。彼得曾就职于Idiom Technologies Inc.（现为SDL PLC）。在Idiom担任LSP合作伙伴项目总监期间，彼得负责将该公司的全球LSP合作伙伴项目打造成一个成功且具有创新性的项目。在加入Idiom之前，他曾在多家全球本地化公司从事语言技术开发，包括Lionbridge、Bowne Global Solutions和Berlitz GlobalNET。他曾领导位于都柏林的开发团队，负责BerlitzIT、Elcano、Freeway 2.0等技术解决方案，以及内部项目和供应商管理工具。彼得积极参与标准化（尤其是XLIFF）的开发和推广工作已有十多年，主要是在OASIS。在XLIFF于2008年发布之前，他是OASIS XLIFF技术委员会的秘书，并担任翻译网络服务技术委员会的主席。目前，他仍在OASIS和TILP中发挥作用，同时也是ISO SC2和SC4的爱尔兰专家，并负责为EN 15038标准培训审核员。_

#### 简介

每个开发者都希望自己的应用程序能够被使用，并且希望它们能够广受欢迎。一个在美国缅因州乡村地区开发的Web应用程序，很容易被居住在相邻城镇、马来西亚、新西兰、德国或波兰的人使用。即使应用程序没有进行本地化（翻译），不同地区在数据呈现方式上仍然存在一些重要的差异。W3C对国际化的定义是：“设计和开发一款产品，使其能够适应不同文化、地区或语言的目标用户”。 这并不意味着产品必须被翻译成目标用户的语言，而是指产品的设计方式，使其能够让目标用户使用该应用程序，并理解数据的呈现方式。 国际化的目的是为了确保您的应用程序能够面向尽可能广泛的受众，并使其翻译更容易、成本更低。 

本文将向您介绍国际化概念，并演示如何使用Altova MissionKit这一集成套件（包括XMLSpy、StyleVision、MapForce等XML、数据库和UML工具）来实现应用程序的国际化。如果您正在使用诸如XMLSpy和StyleVision等工具，那么很可能您已经在使用国际化的XML应用程序。 

我建议的策略是，在开发应用程序之前，尽量明确您的目标用户群体，并据此进行相应的国际化处理。 在本文中，我首先将讨论一种国际化XML的策略。 接下来，我将介绍国际化标签集，并探讨与XML国际化相关的各种问题。

#### XML国际化策略

国际化规划的第一步是，根据您的实际需求，做出一个明智的决定，明确您需要的国际化程度。 您的组织中可能有人可以帮助您做出这个决定，并且从居住在不同国家的人那里获取意见将特别有帮助。 以下介绍的三级方法可以帮助您确定要实施的国际化程度。 然而，请记住，如果您的文档或应用程序没有进行国际化，您可能会遇到一些问题，但如果您确保它们完全进行国际化，您肯定不会遇到相同的问题。 国际化的三个层次如下：

- 第一级：您的应用程序可能面向的受众相对较小，虽然可能有所增长，但不太可能被翻译成其他语言或在国际上被广泛使用。在这种情况下，您只需遵循本文中的建议，并确保您使用 Altova MissionKit 中的功能来支持国际化。
- 第二级：您的应用程序将面向广泛的用户群体，并且有可能被翻译并在国际上使用。除了使用 Altova MissionKit 的功能外，您还应使用国际化标签集。这是一个由 W3C 发布的用于国际化的规范。
- 第三级：您的应用程序很可能被用于国际市场，并被翻译成多种不同的语言。您应该考虑如何改进本地化流程，例如将内容与代码分离，并确保翻译人员能够像最终用户一样查看文档或应用程序。这超出了本文的范围，但您可以在以下参考资料中找到相关信息。

[Altova MissionKit](https://www.altova.com/zh/products/missionkit/software_development_tools.html) 软件工具包含许多支持国际化的功能。如果您使用这些工具，您将拥有一个非常坚实的基础来创建国际化的 XML 文档。在 [XMLSpy XML 编辑器](https://www.altova.com/zh/xml-editor/) 中创建的应用程序，默认使用 Unicode 编码，我强烈建议您使用此字符集。

#### 国际化标签集

国际化标签集 (ITS) 由万维网联盟 (W3C) 推荐，旨在创建可进行国际化的 XML 文档，并使其易于本地化。如果您正在处理可能需要本地化的 XML 文档，我建议您使用 ITS。通过这项技术，您可以指定需要翻译的文本，为翻译人员提供指导，并明确文本的语言方向。ITS 包含以下七个数据类别：

- **翻译：** 定义文档中哪些部分可以进行翻译。
- **本地化说明：** 提供给译者参考的注释和有用的信息。
- **术语：** 识别文档中使用的术语。
- **方向性：** 指示文档或文档部分的书写和阅读方向。
- **Ruby：** 指示文档的哪些部分应该以“ruby”文本显示。 （“Ruby”是一种短文本，通常位于基础文本的旁边，主要用于东南亚地区的语言文档，用于标注发音或提供简短的注释）。
- **语言信息：** 用于标识文档不同部分所使用的语言。
- **文本中的元素：** 指示如何对文本中的元素进行语言分段处理。

W3C 已经发布了一份关于国际化 XML 文档的最佳实践指南，其中详细介绍了如何使用 ITS。 您可以在他们的网站上找到这份指南：[http://www.w3.org/TR/2007/WD-xml-i18n-bp-20070427/](http://www.w3.org/TR/2007/WD-xml-i18n-bp-20070427/) 规范可以在以下部分找到：[http://www.w3.org/TR/2007/REC-its-20070403/](http://www.w3.org/TR/2007/REC-its-20070403/) 我强烈建议您在进行国际化之前阅读这些文档。

#### 国际化问题

以下表格描述了一些您可能在国际化过程中遇到的问题。 接下来，我们将对这些问题进行更详细的解释，并提供使用 Altova MissionKit 解决这些问题的建议。 


| 问题 | 描述 |
|---|---|
| 编码 | 字符必须由所使用的代码页支持。Unicode 是一种编码，它支持所有常用语言的字符。 |
| 日期和时间 | 不同国家/地区表示日期和时间的方式可能不同。 |
| 数字 | 不同的国家/地区在表示小数点和千位分隔符的方式上可能存在差异。 |
| 货币 | 除了某些国家/地区在表示数字的方式上存在差异外，货币符号或文字在某些国家/地区写在数字之后，而在大多数国家/地区写在数字之前。 |
| 称谓和姓名 | 不同国家/地区的称谓存在许多差异，并且在某些国家/地区，例如匈牙利，人的姓名通常以姓氏开头。日语中不使用中间名。 |
| 地址 | 地址的格式存在一些差异，例如在某些国家/地区，门牌号出现在街道名称之前，而在其他国家/地区则相反。此外，一些国家/地区使用邮政编码，而另一些国家/地区使用邮政区号。 |
| 从右到左 (RTL) | 许多语言的文本是从左到右阅读，但在某些语言，例如希伯来语和阿拉伯语，文本是从右到左阅读的（双向）。 |
| 排序和拼写 | 字母的排序方式存在差异。一些斯堪的纳维亚语系语言包含一个“aa”字符，通常，但并非总是，将其排序在字母表的末尾。 |
| 感叹号和问号 | 在英语中，疑问句和感叹句的标点符号始终位于句子的末尾，而在西班牙语中，疑问句和感叹句的标点符号位于句子的开头和结尾。 |



#### 编码

所有电子文本都使用一种字符编码系统，其中每个字符都由一个数字来表示。在 Unicode 得到广泛应用之前，这曾是国际化方面的一个重要问题。当应用程序尝试显示一个不在当前编码页中的字符时，它会显示为乱码。不仅存在不同语言之间的兼容性问题，还存在在运行不同操作系统的计算机上，字符显示不正确的现象。Unicode 通过创建一个统一的编码页，无论平台、程序或语言，从而解决了这些问题。XML 使用 Unicode 作为其默认编码页。您在 XMLSpy 中创建的任何 XML 文档，默认情况下都会包含声明 "encoding="UTF-8"”。如果文件不是在 XMLSpy 中创建的，您需要确保该文件以 UTF-8 格式保存。UTF 是 "Unicode transformation format" 的缩写，而 UTF-8 是一种 Unicode 变体，它使用 1、2 或 4 个字节来存储字符。它是最常用的变体，并且被广泛用于 XML 和 Web。XMLSpy 支持的其他 Unicode 变体包括：

- **UTF-7。** 这是一个 Unicode 的 7 位版本。它应该仅在 7 位传输的上下文中才使用，例如电子邮件。
- **ISO 1064 UCS – 2 和 UTF – 16。** UCS 是“通用字符集”的缩写，UCS-2 使用两个字节来表示每个字符。UTF-16 是 UCS-2 的扩展，它使用 2 或 4 个字节来表示一个字符。UTF-16 经常被 Windows 和 Java 使用。对于新的文档，您应该使用 UTF – 16，而不是 UCS – 2。
- **ISO 1064 UCS-4。** 这种编码方式使用 4 个字节来表示每个字符，与 UTF-32 相同。UTF-32 经常被 Unix 系统使用。

可能存在使用默认编码而非 UTF-8 的原因。要在 XMLSpy 中设置默认编码，请转到“工具”|“选项”，然后选择“编码”选项卡。  

[![XMLSpy 的编码选项](https://www.altova.com/blog/images/InternationalizationwiththeAltovaMission_C8AF/xmlspyencodingoptions_thumb.gif)](https://www.altova.com/blog/images/InternationalizationwiththeAltovaMission_C8AF/xmlspyencodingoptions.gif) 

如果您想更改单个XML文档的编码方式，请在XMLSpy中打开该文档，然后选择“文件”|“编码”。 

[![XML 编码选项](https://www.altova.com/blog/images/InternationalizationwiththeAltovaMission_C8AF/xmlencodingoptions_thumb.gif)](https://www.altova.com/blog/images/InternationalizationwiththeAltovaMission_C8AF/xmlencodingoptions.gif)

#### 语言

XML 命名空间定义了 xml:lang 属性，用于标识 XML 文档的语言。 xml:lang 属性的值必须是 ISO 语言代码 (ISO 639-2)。 如果您的 XML 文档主要使用一种语言编写，但包含一段使用另一种语言的内容，您可以使用 xml:lang 属性在根元素中标识文档的主要语言，并在包含其他语言文本的元素中使用该属性来标识该语言。

#### 日期

在不同的国家，日期和时间的表示方式可能千差万别。 举例来说，日期“10/09/08”在不同地方的含义可能完全不同：

> In most European countries this means the 10th of September 2008. 
> In the United States this means the 9th of October 2008. 
> In Japan this means 8th of October 2009.

解决这个问题的方法是在您的应用程序中使用 ISO 8601 标准来表示日期和时间。这是一种标准化的表示方法，格式为 YYYY-MM-DDTHH:MM:SS[±HH:MM]，其中：

> YYYY- represents year  
> MM- represents month  
> DD - represents day  
> T signifies that Time follows this  
> HH- represents hours  
> MM- represents minutes  
> SS- represents seconds.

您可以使用 StyleVision 来 [创建样式表](https://www.altova.com/zh/products/stylevision/xslt_stylesheet_designer.html)，从而以适合您的目标受众的方式格式化日期。StyleVision 是一款图形化样式表设计工具，它允许您通过拖放的方式设计 XSLT 和 XSL:FO 样式表，从而将 XML 数据渲染成 HTML、Microsoft Word、PDF 等多种格式。要使用 StyleVision 中的日期格式化功能，请按照以下步骤操作：

- 选择节点的“内容占位符”或输入框。
- 在“属性”侧边栏中，选择要编辑的内容项，然后选择“内容”属性组。
- 点击“输入格式”属性中的“编辑”按钮。
- “输入格式”对话框将弹出

[![StyleVision 日期格式设置](https://www.altova.com/blog/images/InternationalizationwiththeAltovaMission_C8AF/StyleVisiondate_thumb.gif)](https://www.altova.com/blog/images/InternationalizationwiththeAltovaMission_C8AF/StyleVisiondate.gif)

- 选择“格式化”单选按钮。这将允许您选择要使用的的数据类型，并且如果您选择了日期，您可以选择日期的格式。

您也可以在此处选择其他日期和时间格式。我强烈建议使用日期选择器。要插入日期选择器，光标必须位于一个 `<xs:date>` 或 `<xs:dateTime>` 节点之间。然后，在主菜单中选择“插入”，并选择“插入日期选择器”。如果光标不在 `<xs:date>` 或 `<xs:dateTime>` 节点之间，则“插入日期选择器”菜单项将显示为灰色，不可使用。

#### 数字

小数点或逗号可以用于表示小数，具体使用哪种符号取决于地区设置。此外，表示千位数的符号也可能存在差异。StyleVision 提供了功能，允许您根据目标受众来格式化数字：

- 选择节点的“内容占位符”或输入框。
- 在“属性”侧边栏中，选择要编辑的内容项，然后选择“内容”属性组。
- 点击“输入格式”属性中的“编辑”按钮。
- “输入格式”对话框将弹出

[![StyleVision 数字格式设置](https://www.altova.com/blog/images/InternationalizationwiththeAltovaMission_C8AF/numberformatting_thumb.gif)](https://www.altova.com/blog/images/InternationalizationwiththeAltovaMission_C8AF/numberformatting.gif)

- 选择“格式化”单选按钮。这将允许您选择数字的格式。

#### 金钱

与数字相关的处理方式同样适用于货币，但除此之外，货币符号的表示方式也存在不同的规范。有些货币名称和符号相同，例如美元，但澳大利亚元、加拿大元和新加坡元并非同一种货币，这一点需要明确区分。您可以像处理数字那样处理货币，但关于货币名称或符号应该放在数字之前还是之后的问题，很可能需要在翻译过程中进行处理。

#### 地址

在线购物时，客户从外国公司购买商品时，经常会遇到一个问题：系统不允许他们正确输入地址。存在许多差异，例如门牌号可能位于街道名称之前或之后，地址各组成部分排列的顺序，以及邮政编码的格式等。 CEN（欧洲标准机构）制定了一项标准，其中列出了地址的组成部分，而UPU（世界邮政联盟）正在进一步完善该标准，以创建一个包含姓名和地址所有要素的全面列表。 我建议您确保您获得针对主要目标市场的所需数据，但同时也要确保来自其他国家的客户也能正确输入他们的地址。 可以使用下拉列表选择国家，以确保在您已知地址的某些组成部分是必需的的情况下进行错误检查，但同时避免对其他国家产生错误，因为您可能不了解这些国家的地址结构。

#### 信用卡

有些位于美国的网站不会接受来自美国境外的信用卡。为了安全起见，他们通常要求提供有效的美国地址。如果您希望接受信用卡支付，并与您所在国家/地区以外的人进行业务往来，您应该确认该网站是否接受外国信用卡。

#### 从右到左 (双向文本)

在许多语言中，文本是从左到右阅读的，但这并非普遍现象。阿拉伯语和希伯来语是从右到左书写的。在XML文档中，这会造成进一步的混淆，因为XML元素是从左到右读取的，但任何文本都应该从右到左阅读。ITS命名空间提供了一个“方向”（direction）属性，可以用来标识应该采用哪种阅读方向。
<its:span dir="rtl"> 享受钓鱼的乐趣！</its:span>

#### 排序

字母排序的方式存在差异。一些北欧语言中存在“aa”这个字符，通常情况下，但并非总是如此，它会被排在字母表的末尾。如果您在XML文档中设置了语言，并在XSL文档中使用`xsl:sort`进行排序，那么排序应该会按照该语言的排序规则进行。但是，您应该检查您的处理程序是否确实如此，因为并非总是如此。StyleVision自带的示例文件中包含排序的示例。选择“StyleVision示例”，然后选择“教程文件夹”，再选择“排序”，然后打开文件“SortingOnTwoTextKeys.sps”。要了解排序的工作方式，请进入设计视图，右键单击成员元素。然后在上下文菜单中选择“按...排序”选项。在这里，您可以控制此特定列表的排序方式。

#### 感叹号和问号

在英语中，疑问号和感叹号总是位于句子的末尾，而在西班牙语中，这些标点符号则可能出现在句子的开头和结尾。在翻译过程中，这种情况通常会被纠正。

#### 结论

国际化是确保您的应用程序面向尽可能广泛的目标用户，并且以最具成本效益和最简单的方式进行翻译的重要一步。您在处理国际化时应该采取务实的方法。前期投入时间和精力进行国际化准备，将在整个过程中带来巨大的好处，并显著提高您产品的市场潜力。本文旨在提供一个概述，并向您介绍国际化。以下参考资料中包含更多有用的信息。 

诸如 XMLSpy 和 StyleVision 等工具，它们都包含在 Altova MissionKit 软件套件中，在很大程度上简化了 XML 文档的国际化过程，因为它提供了大量的内置国际化支持。W3C 发布的国际化标签集 (Internationalization Tag Set) 是一项非常重要的创新，为希望构建国际化 XML 应用程序的开发人员提供了强大的工具。XML 技术自诞生之初就考虑了国际化和翻译。使用 Unicode 作为 XML 的默认编码方式非常重要，并且极大地简化了处理任何国际化问题的过程。Altova MissionKit、ITS 和 Unicode 提供的功能是构建优秀国际化应用程序的基础。 

**参考资料** 以下是提供有关国际化相关更多信息的有用网站和其他资源：领先的XML工具提供商——Altova [https://www.altova.com/](https://www.altova.com/zh/)。他们还提供MissionKit的免费试用版：[https://www.altova.com/download](https://www.altova.com/zh/download)。 

Unicode 官方网站：[http://www.unicode.org/](http://www.unicode.org/) 

国际化标签集 [http://www.w3.org/TR/2007/REC-its-20070403/](http://www.w3.org/TR/2007/REC-its-20070403/) 

W3C 国际化最佳实践 [http://www.w3.org/TR/2007/WD-xml-i18n-bp-20070427/](http://www.w3.org/TR/2007/WD-xml-i18n-bp-20070427/) 

Open Tag (Yves Savourel 创立) [http://www.opentag.com/](http://www.opentag.com/) 

Yves Savourel 撰写的《XML 国际化与本地化》，是一本非常优秀的参考资料。更多信息请访问：[http://www.opentag.com/xmli18nbook.htm](http://www.opentag.com/xmli18nbook.htm)

TM-Global 的研究和资源网站发布了大量关于翻译、本地化以及行业标准方面的有价值的文章、观点和调查报告。 [http://www.tm-global.com/](http://www.tm-global.com/) 

国际化专家 Tex Texin 的网站：[http://www.xencraft.com/](http://www.xencraft.com/) 以及 [http://www.i18nguy.com/](http://www.i18nguy.com/) 

本地化流程 – 国际化专家网站 [http://www.locflowtech.com/](http://www.locflowtech.com/) 

基于XML的翻译工具和术语库，性价比高，可以从如Kilgray Translation Technologies等公司获得。 [http://www.kilgray.com/](http://www.kilgray.com/)
