繁体   English   中英

如何本地化YUI的日历组件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM