我正在编写一个asp.net应用程序,需要本地化到北美以外的几个地区。 我需要做什么才能为此全球化做好准备? 您学习编写面向全球的应用程序的前1到2个资源是什么。
我正在编写一个asp.net应用程序,需要本地化到北美以外的几个地区。 我需要做什么才能为此全球化做好准备? 您学习编写面向全球的应用程序的前1到2个资源是什么。
我学到了一些东西:
尽量减少包含文本的图像数量,这样做会使你的生活变得轻松愉快,因为你不必为每种语言都换一套图像。
非常小心css定位,它依赖于某些东西始终保持相同的大小。如果这些东西包含文本,它们将不会保持相同的大小,然后你将需要返回修改设计。
如果您在sql表中使用字符类型,请确保任何可能接收国际输入的字符都是unicode(nchar、nvarchar、ntext)。说到这一点,我建议您只使用unicode版本。
如果您正在动态构建SQL查询,请确保在引用的任何文本之前添加"N"前缀,如果有任何可能该文本可能是Unicode,如果您最终将垃圾放入SQL表中,请检查是否存在该问题。
确保所有网页明确声明它们是以Unicode格式编写的。参见Joel上面提到的那篇文章。
对于这个项目,您将经常使用资源文件。这很好——ASP.NET 2.0对此提供了很好的支持。您需要查看App_LocalResources和App_GlobalResources文件夹,以及GetLocalResourceObject、GetGlobalResourceObject和meta:resourceKey的概念。Professional ASP.NET 2.0第30章有关于此方面的很棒的内容。3.5版本的书中可能也有很好的内容,但我没有拥有它。
考虑字体。您可能想要使用的许多标准字体不支持unicode。我一直用Arial Unicode MS、MS Gothic和MS Mincho都很好用。不过,我不确定这些字体在跨平台方面如何。另外,请注意,并非所有字体都支持所有Unicode字符定义。再次测试、测试、测试。
现在开始考虑如何将翻译集成到该系统中。与你的翻译供应商交谈,了解他们希望如何传递数据进行翻译。请考虑,通过本地资源文件,您可能会在整个系统中重复使用某些常用字符串。您是否将其规范化为全局资源文件,或者您是否具有某种数据库层,仅会生成每个使用的文本的一份副本。在我们最近的项目中,我们使用的是资源文件,这些资源文件从一个包含所有翻译和原始英文版本的数据库表中生成。
测试。通常我会在德语、波兰语和亚洲语言(日语、中文、韩语)中进行测试。德语和波兰语很啰嗦,几乎肯定会拉伸文本区域,亚洲语言使用完全不同的字符集,这可以测试您的Unicode支持。
了解 System.Globalization 命名空间:
另外,一本好的书是.NET Internationalization:开发人员构建全球 Windows 和 Web 应用程序的指南
这是一个棘手的问题。我住在加拿大,所以多语言是一个重要的问题。在我多年的软件开发经验中,我从未见过自己喜欢的解决方案。我看到了很多能够完成工作的解决方案,但它们总是感觉像一个大杂烩。我会跟随 @harriyott 的建议,确保你的代码中没有实际的字符串。资源文件对于桌面应用程序非常有效。然而,在ASP.Net中,我建议使用数据库。@John Christensen 也有一些很好的指导意见。
我会认真考虑阅读以下代码项目文章:
它涵盖了从文化和区域设置、设置线程当前文化、资源文件、编码等方面的所有内容,应有尽有!
当然,它还充满了漂亮的图片和示例 :-)。祝你好运!