本地化评审

本地化分析检查是全球通用应用程序开发中的一个中间步骤。 它验证全球化应用程序是否已准备好进行本地化,以及是否能够识别需要特别处理的所有代码或所有用户界面元素。 此步骤还有助于确保本地化过程不会将任何功能缺陷引入应用程序。 一旦本地化分析检查提出的所有问题都得到解决,就意味着可以对应用程序进行本地化了。 如果本地化分析评审详尽彻底,则在本地化过程中应该不需要修改任何源代码。

本地化分析检查包括以下三项检查:

实现全球化建议

如果在设计和开发应用时考虑了本地化因素,并且遵循了全球化一文中给出的建议,那么可本地化评审在很大程度上就会成为质量保证关口。 否则,请在此阶段评审并实现全球化建议,修复源代码中妨碍本地化的错误。

处理区分区域性的功能

.NET 在许多方面都不提供编程支持,而且各区域性之间差别很大。 大多数情况下,你必须编写自定义代码来处理诸如以下方面的功能特性:

  • 地址

  • 电话号码

  • 纸张大小

  • 用于长度、重量、面积、体积和温度的度量单位

    虽然 .NET 不对度量单位之间的转换提供内置支持,但可以使用 RegionInfo.IsMetric 属性确定特定国家或地区是否使用公制,如下面的示例所示。

    using System;
    using System.Globalization;
    
    public class Example
    {
       public static void Main()
       {
          string[] cultureNames = { "en-US", "en-GB", "fr-FR",
                                    "ne-NP", "es-BO", "ig-NG" };
          foreach (var cultureName in cultureNames) {
             RegionInfo region = new RegionInfo(cultureName);
             Console.WriteLine("{0} {1} the metric system.", region.EnglishName,
                               region.IsMetric ? "uses" : "does not use");
          }
       }
    }
    // The example displays the following output:
    //       United States does not use the metric system.
    //       United Kingdom uses the metric system.
    //       France uses the metric system.
    //       Nepal uses the metric system.
    //       Bolivia uses the metric system.
    //       Nigeria uses the metric system.
    
    Imports System.Globalization
    
    Module Example
        Public Sub Main()
            Dim cultureNames() As String = {"en-US", "en-GB", "fr-FR",
                                             "ne-NP", "es-BO", "ig-NG"}
            For Each cultureName In cultureNames
                Dim region As New RegionInfo(cultureName)
                Console.WriteLine("{0} {1} the metric system.", region.EnglishName,
                                  If(region.IsMetric, "uses", "does not use"))
            Next
        End Sub
    End Module
    ' The example displays the following output:
    '       United States does not use the metric system.
    '       United Kingdom uses the metric system.
    '       France uses the metric system.
    '       Nepal uses the metric system.
    '       Bolivia uses the metric system.
    '       Nigeria uses the metric system.
    

测试应用程序

在本地化应用程序之前,应当使用国际数据在操作系统的国际版本上对其进行测试。 虽然此时不会对大部分用户界面进行本地化,但可以检测到如下问题:

  • 在操作系统版本之间无法正确执行反序列化的序列化数据。

  • 不反映当前区域性的约定的数值数据。 例如,显示的数字可能带有错误的组分隔符、小数分隔符或货币符号。

  • 不反映当前区域性的约定的日期和时间数据。 例如,表示月和日的数字可能会以错误的顺序出现,日期分隔符可能不正确,或者时区信息可能不正确。

  • 找不到的资源,因为尚未确定应用程序的默认区域性。

  • 以特定区域性中的异常顺序显示的字符串。

  • 返回意外结果的字符串比较或相等比较。

如果在开发应用时遵循了全球化建议,并正确处理了区域性敏感型功能,同时还发现并解决了测试期间出现的本地化问题,就可以执行下一步本地化

请参阅