2010-12-08 36 views
2

我非常喜欢在这里的人们的意见/最佳实践和经验块。本地化 - 第一步

我需要在ASP.net C#中生成一个新的网站,它需要根据用户配置文件更改语言。

我已经做了几个简单的样品,但我很好奇稍低的水平。我追求的资源真的可以阅读和评论。

什么设计模式适用于将数据网格转换为不同文化的工作。

如果我要存储货币信息,是否存储汇率也是标准做法?

如果我打算使用标准ASP.net Web应用程序的路线,我可以使用URL路由来帮助选择要使用的文化吗?例如www.mynewsite.com/en-GB/default.aspx。

智慧/思想欢迎。

为希望感谢,并感谢多回答,

迈克

回答

3

一对夫妇的事情,我已经学会:

  • 绝对惨遭减少你有图像的数量包含文字。这样做会让你的生活变得容易十亿分之一,因为你不必为每一种语言都获得一组新的图像。

  • 对css定位非常警惕,它依赖于始终保持相同大小的东西。如果这些东西包含文字,它们将不会保持相同的大小,然后您将需要返回并修复您的设计。

  • 如果您在sql表中使用字符类型,请确保任何可能接收国际输入的字符都是unicode(nchar,nvarchar,ntext)。对于这个问题,我只会标准化使用unicode版本。

  • 如果您要动态构建SQL查询,请确保在任何带引号的文本之前包含N前缀(如果有可能文本可能是unicode)。如果最终将垃圾放入SQL表中,请检查是否存在。

  • 确保您的所有网页都明确指出它们是unicode格式。见上面提到的乔尔的文章。

  • 你将会在这个项目中使用很多资源文件。这很好 - ASP.NET 2.0对此有很好的支持。您需要查看App_LocalResources和App_GlobalResources文件夹以及GetLocalResourceObject,GetGlobalResourceObject和meta:resourceKey的概念。专业ASP.NET 2.0的第30章有一些很好的内容。本书的3.5版本可能也有很好的内容,但我不拥有它。

  • 想想字体。许多您可能想要使用的标准字体都不支持unicode。我一直很喜欢Arial Unicode MS,MS Gothic,MS Mincho。不过,我不确定这些跨平台是如何实现的。另外请注意,并非所有的字体都支持所有的Unicode字符定义。再次,测试,测试,测试。

  • 现在开始思考你将如何获得翻译到这个系统。请与您的翻译供应商谈谈他们希望翻译数据的方式。考虑一下这样一个事实,即通过本地资源文件,您可能会在系统中重复使用一些常用的字符串。你是否将这些规范化为全局资源文件,或者是否有某种数据库层,其中只生成每个使用文本的一个副本。在我们最近的项目中,我们使用了从数据库表中生成的资源文件,其中包含所有翻译和资源文件的原始英文版本。

  • 测试。一般来说,我会用德语,波兰语,希伯来语或阿拉伯语和亚洲语言(日语,中文,韩语)进行测试。德语和波兰语是罗嗦的,几乎可以保证伸展文本区域,亚洲语言使用完全不同的字符集来测试您的Unicode支持,而希伯来语和阿拉伯语都是右对齐的语言。

+0

所有的优点。字符串标准化是一种痛苦,因为翻译可以根据上下文(例如,女性形式)进行更改。另外,你和译者之间的转移是整个事情的最大麻烦,海事组织。 – Greg 2010-12-08 16:34:35