一、简介
全球化和本地化是每一位开发者在创建全球化产品或应用程序时必须清楚的两个重要的慨念。尽管有许多文章对这个题目作过较好的解释,但是我一直没有看到一篇全面而综合地讨论关于全球化/本地化的所有重要概念的文章。本文旨在通过一个具体案例来详细分析使用ASP.NET2.0开发一个web应用程序时所涉及到的全球化问题。
二、背景理论 全球化是应用程序开发中某一阶段的任务,其目的是使程序能够跨多个文化地区可用而不必顾及语言和地区性差别。例如,你在开发一个小型库存管理程序,而你生活在例如英格兰这样一个以英语为主要语言的地区。现在,如果你想把你的程序卖到另一个不同国家,比方说是德国,那么你需要确保你的程序以德语显示并实现输入。
本地化是使用一种地区特定的文化和语言来创建内容、输入和输出数据的过程。文化将会影响日期显示设置(如是mm/dd/yyyy还是dd/mm/yyyy),货币显示格式等。现在,确保我们的程序能够被本地化的过程称为国际化或全球化。用更简单的术语来说,全球化能够被定义为一组活动,通过这一活动,可以确保我们的程序能够运行在使用不同语言和文化的地区。
因此,全球化是与内在代码的改变相关联的以便支持这样的改变,如使用资源文件等;而本地化是使用一种特定的文化和地区性信息的过程,以便该程序能够使用本地的语言和文化。这意味着要把字符串翻译成一个特定的本地的语言;为此,要把语言特定的字符串放到资源文件中。一般地,应该从主构建和代码开发阶段就开始考虑全球化问题,而本地化通常在以后才实现。
三、 实现ASP.NET 2.0网站的全球化 让我们从一个简单的示例开始。为了解释本地化并使事情尽可能简单,我使用ASP.NET和C#创建了一个称为TestSite的新网站(详见本文下载的源码);我添加了一个MasterPage和一个缺省页面。这个缺省页面中含有一个TextBox和一个Calendar控件;该TextBox控件有一个描述货币的双精度型实数。在本例中,我们会看到随着用户选择不同的语言货币格式发生相应的变化。当我运行该应用程序时,此缺省页面看起来如下所示:
我已经出版了这个测试web应用程序,你可以在下列URL处看到它的功能版本:http://63.134.215.124/testsite/default.aspx