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

2012/2/9

若要生成一个易于本地化的应用程序,请考虑以下最佳做法。有关通用全球化和本地化概念的更多信息,请参阅 Windows Phone 全球化和本地化

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

本地化特定字符串,而非标记。请看以下示例:

过度本地化的字符串

恰当本地化的字符串

<链接>使用条款</链接>

使用条款

<链接>隐私策略</链接>

隐私策略

资源中包括的上述 <link> 标记意味着此标记也将被本地化了,这样该标记将失效。只应本地化字符串本身。

手机用户界面可用空间有限。若要适应本地化语言,请确保目标语言的字符串长度大约比所需英语语言的字符串长度长 40%。此外,如果启用控件中的多行支持和文字环绕功能,则可以留出足够多的空间来显示每个字符串。

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

英语(美国)

德语(德国)

无法同步约会。

Der Termin konnte nicht synchronisiert werden.

无法同步任务。

Der Aufgabe konnte nicht synchronisiert werden.

无法同步文档。

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 或通用名称)进行标识。之后,访问资源时只需使用资源的唯一值(不会变更)(而非实际值(根据语言不同而有所变更))即可。

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

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

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

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

此外,请参考以下建议:

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

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

  • 确保本地化人员信息畅通。通知本地化人员可作名词或动词的字符串。通过术语工具向本地化人员介绍生造词。请确保字符串语法正确、意义清楚并尽可能的非技术性,以避免混淆。

显示: