2

我在我的网站上使用ASP.NET AJAX 控件,并在 ScriptManager 上启用了以下设置:

scriptManager.EnableScriptGlobalization = true;
scriptManager.EnableScriptLocalization = true;

当我将浏览器语言切换为法语时,我会在页面上呈现一个名为__cultureInfo的丰富 JavaScript 对象,其中包含初始化日期选择器和正确格式化日期字符串所需的所有好东西。

但是,当区域设置为美国英语时,不会呈现__cultureInfo对象。

有没有办法强制 ASP.NET AJAX 为所有语言环境呈现这个 JavaScript 变量/对象?我想初始化我所有的语言环境感知控件,而不必使用特殊的美国英语。

4

1 回答 1

0

Microsoft 将 Invarient 文化克隆到 en-US,因此即使未加载 __cultureInfo,您也应该在Sys.CultureInfo.CurrentCulture中拥有所需的一切

switch(typeof(cultureInfo)) {
case "string":
    // this is true when the server is 3.5
    cultureInfo = window.eval("(" + cultureInfo + ")");
    // allow fallthrough to object
case "object":
    this.CurrentCulture = this._parse(cultureInfo);
    delete __cultureInfo;
    break;
default:
    cultureInfo = clone(invariant);
    // fix up the differences
    cultureInfo.name = "en-US";
    cultureInfo.numberFormat.CurrencySymbol = "$";
    var dtf = cultureInfo.dateTimeFormat;
    dtf.FullDatePattern = "dddd, MMMM dd, yyyy h:mm:ss tt";
    dtf.LongDatePattern = "dddd, MMMM dd, yyyy";
    dtf.LongTimePattern = "h:mm:ss tt";
    dtf.ShortDatePattern = "M/d/yyyy";
    dtf.ShortTimePattern = "h:mm tt";
    dtf.YearMonthPattern = "MMMM, yyyy";
    this.CurrentCulture = this._parse(cultureInfo);
    break;
}
于 2013-05-02T23:50:22.937 回答