导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

执行 Windows Phone 8 本地化的最佳做法

2014/6/18

适用于:Windows Phone 8 和 Windows Phone Silverlight 8.1 | Windows Phone OS 7.1

若要生成可轻松本地化的应用,请考虑以下最佳做法。有关通用全球化和本地化概念的更多信息,请参见 Windows Phone 8 的全球化和本地化

本主题包括以下部分。

将资源(如字符串、图像和视频)与代码分开;将它们移至单独的纯资源文件。这样可以确保代码独立于语言,并且还可以支持不同的语言编码。Unicode 是首选解决方案。有关如何创建单独资源文件的示例,请参阅如何生成 Windows Phone 8 的本地化应用

提示提示:

Multilingual App Toolkit 集成了 Visual Studio Professional 2012 和 Visual Studio Express 2012 for Windows Phone,可以提供集成的翻译支持、翻译文件管理和编辑器工具,从而帮助您创建 Windows Phone 应用和 Windows 应用商店 应用。使用此工具包连接到 Microsoft Translator 可获得快速翻译建议。有关详细信息,请参见如何使用 Multilingual App Toolkit

仅将需要本地化的确切字符串包括在内。例如,不要将标记包括在可本地化字符串内。请看下面的示例。

过度本地化的字符串

恰当本地化的字符串

<link>使用条款</link>

使用条款

<link>隐私策略</link>

隐私策略

在上例中,资源中包括 <link> 标记意味着此标记也将被本地化,这使该标记无效。仅将字符串本身本地化。

移动设备对于 UI 的空间是有限的。若要在 Windows Phones 上适应本地化语言,请使用比用英语语言显示字符串所需的约长 40% 的字符串长度。此外,如果启用控件中的多行支持和文字环绕功能,则可以留出足够多的空间来显示每个字符串。

请看以下字符串:“无法同步 {0}”。可以使用许多词语(如“约会”、“任务”或“文档”)来替换 {0}。虽然此示例在英语语言中可以说得通,但是在别的语言(如德语)中,对应的句子不一定能说得通。

英语(美国)

德语(德国)

The appointment could not be synchronized.

Der Termin konnte nicht synchronisiert werden.

The task could not be synchronized.

Der Aufgabe konnte nicht synchronisiert werden.

The document could not be synchronized.

Der Document konnte nicht synchronisiert werden.

请看这个句子(另一个示例),“{0} 分钟后提醒我。”虽然在英语中可使用“minute(s)”,但其他语言则可能使用不一样的措词。例如,波兰语中根据上下文而定,可能使用“minuta”、“minuty”或“minut”。

若要解决此类问题,请本地化整个句子,而非单个词语。虽然这样做看起来多余,而且可能还是一个不优雅的解决方案,但它却是最佳解决方案,因为:

  • 可以通过各种语言显示清楚的错误消息。

  • 您的本地化人员不会不确定使用什么字符串来代替。

  • 如果应用完成后出现此类问题,则您不需要实现昂贵的代码修复。

请勿假定所有语言都按相同的顺序来使用参数。

例如,看看这个字符串“每个 %s %s”,其中的第一个 %s 由一个月份名称所替换,而第二个 %s 则由月份中的一个日期所替换。此示例可以在英语语言中使用,但是不能在德语语言中使用,因为德语中日期和月份的显示顺序与此示例中的显示顺序相反。若要解决此类问题,请将字符串更改成“每个 %1 %2”,这样一来,日期和月份的显示顺序就可以根据不同的语言而进行相应的调整了。

虽然重复使用同一个字符串可能看起来像是最佳解决方案,但是如果字符串的上下文有所变更,那么这样做可能会导致本地化方面的问题。

例如,看看字符串“on”和“off”。虽然在英语语言中可以使用这些字符串来描述飞行模式、蓝牙和设备切换开关,但是在意大利语中,“on”和“off”的翻译则需根据正在打开和关闭的设备而定。在此示例中,您可能需要分别为每个上下文创建一对字符串。

此外,类似于“text”或“fax”的字符串在英语中既可用作动词也可用作名词,这可能会造成翻译的混淆。可以为动词格式和名词格式分别创建一个单独的字符串。

当您设计您的资源时,请通过使用唯一值(如 ID)或名称来标识每一个资源。之后,访问资源时只需使用资源的唯一值(不会变更)(而非实际值(根据语言不同而有所变更))即可。

将字符串分成资源文件后,才可以对其进行翻译。翻译字符串的最佳时间是在项目中的所有字符串都完成之后,这通常是在开发过程结束时。

可以通过多个方法来完成翻译工作,具体情况依要翻译的字符串数量、语言数量以及将采用的翻译方式(如内部人员自己翻译或聘用外部供应商来翻译)而定。请考虑以下可选方案:

  • 直接在 Visual Studio 项目中打开资源文件,就可以对其进行翻译。对于字符串数量较少而且需要翻译成 2 种或 3 种语言的项目,此方法比较适用。此方法可能适用于这样一种情况:一个开发人员会说多种语言,并且乐于处理翻译过程。虽然此方法具有快速、无需工具以及可将误译风险最小化的优点,但是它还不具有可扩展性。

  • 资源文件为 XML 格式,因此可以将它们传递给使用任何文本编辑器的翻译过程。然后,再将已翻译完的文件复制到项目中去。此方法存在翻译人员意外编辑 XML 标记的风险,但它允许在 Visual Studio 项目外进行翻译工作。对于需要翻译成少数几种语言的项目,此方法也可能比较适用。

此外,请考虑实现以下的部分或全部建议:

  • 使用本地化工具。许多本地化工具都可以解析资源文件,仅允许翻译人员对可翻译的字符串进行编辑。此方法可以降低翻译人员意外编辑 XML 标记的风险,但是同时还存在一个缺点 - 将新工具和过程引入到本地化工作中来。对于字符串数量较多而要本地化为较少种类语言的项目,使用本地化工具比较有利。

  • 使用本地化供应商。 如果项目包含的字符串数量较多且需翻译成多种语言版本,则可以考虑使用本地化供应商。本地化供应商可以提供有关工具、流程以及资源文件翻译方面的建议。虽然这是一个理想的解决方案,但也是花费最大的方案,并且您收到已翻译好的内容所需的周转时间也可能会增加。

  • 确保本地化人员信息畅通。通知本地化人员可作名词或动词的字符串。使用术语工具向您的本地化人员解释不常用的术语和技术词汇。为避免含混,请保持字符串语法准确、清楚而且尽可能为非技术性的。

Microsoft 正在进行一项网上调查,以了解您对 MSDN 网站的意见。 如果您选择参加,我们将会在您离开 MSDN 网站时向您显示该网上调查。

是否要参加?
显示:
© 2014 Microsoft