全球化asp.net应用程序我需要知道些什么?

时间:2020-03-05 18:52:15  来源:igfitidea点击:

我正在编写一个asp.net应用程序,该应用程序需要本地化到北美以外的其他地区。我需要做些什么来为全球化做准备?我们掌握的前1至2个资源是什么,以学习如何编写适合世界使用的应用程序。

解决方案

回答

了解有关System.Globalization命名空间的信息:

系统全球化

此外,一本不错的书是NET Internationalization:构建全局Windows和Web应用程序的开发人员指南

回答

如果我们要针对其他文化,语言,则可以刷新一下Unicode。

每个软件开发人员绝对必须绝对了解Unicode和字符集(没有任何借口!)

回答

我会建议:

  • 将所有字符串放入数据库或者资源文件中。
  • 请留出足够的空间来容纳翻译后的文字,因为某些文字(例如德语)会更加冗长。

回答

我学到的几件事:

  • 绝对和残酷地减少包含文本的图像的数量。这样做将使生活轻松十亿%,因为我们不必为每种苦苦挣扎的语言都获得一套新的图像。
  • 谨防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字符定义。再次,测试,测试,测试。
  • 现在开始考虑如何将翻译导入该系统。与翻译供应商中的任何人谈谈他们希望如何来回传递数据进行翻译。考虑一下这样一个事实,即通过本地资源文件,我们很可能会在系统中重复一些常用的字符串。我们是否将它们标准化为全局资源文件,或者我们是否具有某种数据库层,在该数据库层中,每个使用的文本仅生成一个副本。在我们最近的项目中,我们使用了从数据库表生成的资源文件,该数据库表包含所有翻译和资源文件的原始英文版本。
  • 测试。一般来说,我会用德语,波兰语和亚洲语言(日语,中文,韩语)进行测试。德语和波兰语是罗y的,几乎可以保证扩展文本区域,亚洲语言使用一组完全不同的字符来测试对Unicode的支持。

回答

这是一个难题。我住在加拿大,因此使用多种语言是一个大问题。在从事软件开发的所有这些年中,我从未见过喜欢的解决方案。我已经看到了很多可行的解决方案,并且已经完成了工作,但是他们总是觉得自己像个大腕。我将使用@harriyott,并确保所有字符串都实际上不在代码中。资源文件非常适合桌面应用程序。但是,在ASP.Net中,我建议使用数据库。 @John Christensen也有一些很好的指示。

回答

确保我们在打开代码分析的情况下进行编译,并注意它给全球化警告。将数据保持不变格式(CultureInfo.InvariantCulture),直到将其显示给用户(然后使用CultureInfo.CurrentCulture)。

回答

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

ASP.NET 2.0中神秘化的全球化和本地化

它涵盖了文化和语言环境中的所有内容,为线程设置了当前的文化,资源文件,编码,我们可以自己命名!

当然,其中包含漂亮的图片和示例:-)。祝你好运!