全球化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中神秘化的全球化和本地化
它涵盖了文化和语言环境中的所有内容,为线程设置了当前的文化,资源文件,编码,我们可以自己命名!
当然,其中包含漂亮的图片和示例:-)。祝你好运!