【发布时间】:2011-03-01 10:46:02
【问题描述】:
我不确定我是否理解这段代码,或者我是否正确使用它,但我的印象是,在 ASP.NET 2.0 AJAX 网站中我可以像这样运行 javascript:
var c = Sys.CultureInfo.CurrentCulture
它会给我用户在访问时在浏览器中指定的文化/语言设置。但是,对我来说,无论我在 Firefox 或 IE 中选择哪种语言,它总是返回“en-US”。
但是这个服务器端代码:
string[] languages = HttpContext.Current.Request.UserLanguages;
if (languages == null || languages.Length == 0)
return null;
try
{
string language = languages[0].ToLowerInvariant().Trim();
return CultureInfo.CreateSpecificCulture(language);
}
catch (ArgumentException)
{
return null;
}
返回我当前设置的语言。但我需要做这个客户端,因为我需要在回发之前将字符串解析为日期时间并进行一些验证,并且该字符串可以是 MM/DD/YYYY 或 DD/MM/YYYY,或其他类似的东西。
我错过了什么?
编辑: 好的,我遇到了这个库http://www.datejs.com/。它看起来很可爱,并且它有忍者,所以我已经卖光了。但是在他们的文档中,我注意到您需要包含要包含的特定语言的 js 文件之一。我想你必须在服务器端做出决定并发出正确的脚本包含标签,这让我思考。我应该用 ASP.NET AJAX 的东西来做这个吗?即检查服务器端文化(哪个有效)并基于此在 js 中设置 Sys.CultureInfo.CurrentCulture?我希望它会自动从浏览器客户端获取它。
【问题讨论】:
-
你不应该使用 CultureInfo.CreateSpecificCulture(language);只需使用 new CultureInfo(language) 代替
-
好的,但是该服务器代码实际上正在运行。给我带来麻烦的是客户端的东西。
标签: c# asp.net javascript validation localization