asp.net - 本地化 - 第一步

标签 asp.net localization

我非常喜欢这里的人们的意见/最佳实践和经验。

我需要用 ASP.net C# 制作一个新网站,需要根据用户配置文件更改语言。

我之前做过几个简单的示例,但我对稍低的水平感到好奇。我正在寻找我可以真正阅读和审阅的资源。

有哪些设计模式可以用于将数据网格转换为不同的文化等事情。

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

如果我要沿着标准 ASP.net Web 应用程序的路线前进,我可以使用 URL 路由来帮助选择要使用的区域性吗?例如www.mynewsite.com/en-GB/default.aspx。

欢迎智慧/想法。

感谢您的浏览,更感谢您的回答,

迈克

最佳答案

我学到的一些东西:

  • 绝对且残酷地减少包含文本的图像数量。这样做将使您的生活轻松十亿%,因为您不必为每种该死的语言获取一组新图像。

  • 要非常警惕依赖于始终保持相同大小的 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 字符定义。再次,测试,测试,测试。

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

  • 测试。一般来说,我会用德语、波兰语、希伯来语或阿拉伯语以及亚洲语言(日语、中文、韩语)进行测试。德语和波兰语语言冗长,几乎肯定会拉伸(stretch)文本区域,亚洲语言使用完全不同的字符集来测试您的 unicode 支持,希伯来语和阿拉伯语都是从右到左的语言。

关于asp.net - 本地化 - 第一步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4389762/

相关文章:

asp.net - 全局ASAX - 获取服务器名称

c# - Membership(+ roles) VS session state VS 表单认证

c# - 在 asp.net 中使用 streamreader 访问站点目录路径

localization - 如何将特定于位置的网址添加到站点地图?

iphone - 将 localized.strings 转换为电子表格?

c# - 通过电子邮件链接验证用户帐户

c# - Microsoft Graph API 重定向成功,但 Request.Authentication=false

angularjs - angularjs过滤'date'和$ locale服务

android - 在我的应用程序中更改设备语言

ios - Swift localizedStringWithFormat 数字输出而不是文本