全球化asp.net应用程序需要了解什么?

时间:2008-09-12 14:28:18

标签: asp.net unicode localization globalization

我正在编写一个asp.net应用程序,需要将其本地化到北美以外的几个地区。我需要做些什么来为这场全球化做准备?学习如何编写世界级应用程序的最佳1到2资源是什么。

7 个答案:

答案 0 :(得分:23)

我学到了很多东西:

  • 绝对粗暴地减少包含文本的图像数量。这样做可以让您的生活更轻松十亿,因为您不必为每种friggin语言获取一组新的图像。

  • 对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支持。

答案 1 :(得分:3)

答案 2 :(得分:2)

如果您要定位其他文化,语言,那么在Unicodes上刷新一点会很好。

The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

答案 3 :(得分:2)

这是一个难题。我住在加拿大,所以多语言是一个大问题。在我开展软件开发的这些年里,我从未见过我喜欢的解决方案。我已经看到很多有效的解决方案,并完成了工作,但他们总觉得自己像个大块头。我会选择@harriyott,并确保你的所有字符串都不在代码中。资源文件适用于桌面应用程序。但是在ASP.Net中,我建议使用数据库。 @John Christensen也有一些很好的指示。

答案 4 :(得分:2)

确保您在启用代码分析时进行编译,并注意它为您提供的Globalization warnings。将数据保持为不变格式(CultureInfo.InvariantCulture),直到您将其显示给用户(然后使用CultureInfo.CurrentCulture)。

答案 5 :(得分:1)

我会认真考虑阅读以下代码项目文章:

Globalization and localization demystified in ASP.NET 2.0

它涵盖了Cultures和Locales的所有内容,设置了当前文化,资源文件,编码的线程,您可以命名它!

当然它装满了漂亮的图片和例子:-)。祝你好运!

答案 6 :(得分:0)

我建议:

  1. 将所有字符串放在数据库或资源文件中。
  2. 为翻译文本留出额外空间,因为有些(例如德语)比较单词。