[英]How to localize calendar component of YUI?
我在网站上使用YUI的日历组件。 如本示例所示,我已将代码作为Javascript插入到ASP页中。 本示例说明如何为一种语言环境(在这种情况下为德语)配置日历组件。 我想知道的是如何根据每个用户的浏览器语言为其配置日历?
将特定于语言的初始化代码(如您链接到的页面上所示)放入每种语言的单独文件中(例如“ yui-calendar-de-DE.js”)。
然后,在页面的代码后面,根据用户的首选语言,包括正确的包含文件,例如,使用以下代码:
string language = "en-US";
string[] languages = HttpContext.Current.Request.UserLanguages;
if (languages != null || languages.Length > 0)
language = languages[0];
Page.ClientScript.RegisterClientScriptInclude(
"yui-calendar-localization",
ResolveClientUrl("~/scripts/yui-calendar-" + language + ".js"));
更新:
本地化文件(您应该自己创建)可能如下所示:
// this is yui-calendar-localization-de-DE.js
function initCalendar(cal)
{
// Correct formats for Germany: dd.mm.yyyy, dd.mm, mm.yyyy
YAHOO.example.calendar.cal1.cfg.setProperty("DATE_FIELD_DELIMITER", ".");
YAHOO.example.calendar.cal1.cfg.setProperty("MDY_DAY_POSITION", 1);
...
YAHOO.example.calendar.cal1.cfg.setProperty("WEEKDAYS_LONG",
["Sonntag", ... "Samstag"]);
}
然后在您创建日历的页面上,使用该功能本地化日历:
// create calendar
cal1 = new YAHOO.widget.Calendar("cal1","cal1Container",
{ LOCALE_WEEKDAYS:"short",
START_WEEKDAY: 1,
MULTI_SELECT: true
} );
// localize it
initCalendar(cal1);
比我的其他答案所示的解决方案更简单的方法是使用ScriptManager控件的EnableScriptLocalization属性 :
<asp:ScriptManager EnableScriptLocalization="True">
<Scripts>
<asp:ScriptReference Name="yui-calendar-localization.js" />
</Scripts>
</asp:ScriptManager>
这将自动尝试包含脚本的本地化版本,例如yui-calendar-localization-de-DE.js
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.