准备多语言功能。我错过了一招吗?

时间:2009-08-13 08:32:55

标签: c# asp.net

我的asp.net网络应用程序目前正在开发中,我想处理用户输入的任何语言。然后,此输入将显示给站点上的其他用户。

到目前为止,我已完成以下工作:

  1. 把这个作为头 - 元http-equiv =“Content-Type”content =“text / html; charset = utf-8”

  2. 在NVARCHAR字段中保存输入

  3. 我还需要做其他事吗?我是否需要任何其他元标记(内容语言等)?

4 个答案:

答案 0 :(得分:1)

还要考虑一种通过资源或数据库中的适当支持来本地化UI的方法。如果希望用户生成非英语内容,他们肯定会喜欢用他们的母语看到用户界面。

答案 1 :(得分:1)

你应该记住不要做出一般无效的假设。

一个相当常见的错误假设是(str.ToUpper().ToLower() == str)适用于任何string str。一个更微妙的假设是,“上”和“下”的概念甚至对任何给定的语言都有意义。

另一个经常出现问题的假设是输入中的单个char始终是用户角度的实际角色。这是错误的 - 即使设置代理对之类的东西,也有组合字符。你要么必须规范你的字符串(即使这不是100%万无一失),或者只是避免处理个别char

如果您想处理的不仅仅是纯文本输入逐字显示 - 即完整,正确的本地化 - 您还必须正确处理数字,日期,货币等格式;例如,不要假设小数分隔符是一个点。

我最好的一般建议就是去阅读Michael Kaplan's blog,微软本地大师关于本地化和相关问题。查找类别(标签),例如“Collat​​ion / Casing”,“Encoding / Codepages”和“Int'l Programming”。那里有一些很多的东西,其中大部分与你的问题直接相关,或者有趣,或者两者兼而有之。如果在阅读了他的几篇博客文章之后,你开始认为聘请本地化专家只是为了指出该领域潜在的非显而易见的问题是个好主意,那么你可能是对的:)

答案 2 :(得分:0)

  • 每当您使用String.Format附加客户端的文化规范时。使用FxCop可以探索这些地方。
  • 从.cs代码中排除字符串常量
  • 将图像(可包含特定于文化的文本)放入外观文件或资源中。

答案 3 :(得分:0)

浏览器按以下顺序确定字符集:

  1. Content-Type http标头(值示例:“text / html; charset = utf-8”)
  2. XML声明
  3. 元属性
  4. 您应该检查Web服务器是否在标头中发送了冲突的内容类型信息。

    确保以UTF-8保存文件。