2010-09-02 3 views
0

J'utilise le composant calendrier de YUI sur mon site Web. J'ai inséré le code dans une page ASP comme Javascript comme this example démontre. Cet exemple montre comment configurer le composant de calendrier pour un paramètre régional (allemand dans ce cas). Ce que je voudrais savoir, c'est comment puis-je configurer le calendrier pour chaque utilisateur en fonction de la langue de son navigateur?Comment localiser le composant de calendrier de YUI?

Répondre

0

Une solution encore plus facile que montré dans mon autre réponse serait d'utiliser le ScriptManager control's EnableScriptLocalization property:

<asp:ScriptManager EnableScriptLocalization="True"> 
    <Scripts> 
    <asp:ScriptReference Name="yui-calendar-localization.js" /> 
    </Scripts> 
</asp:ScriptManager> 

Cela essaiera automatiquement d'inclure une version localisée du script, par exemple yui-calendar-localization-de-DE.js.

+0

Ok, c'est plus clair. Comment puis-je générer yui-calendar-localisation-de-DE.js? Quels codes suis-je censé insérer ce fichier? Merci. – emre

+0

@emreXXXXXX: Voir l'autre réponse pour une mise à jour. – M4N

+0

Lorsque j'essaie de déboguer, il donne cette erreur. Assembly 'System.Web.Extensions, Version = 3.5.0.0, Culture = Neutre, PublicKeyToken = 31bf3856ad364e35' ne contient pas de ressource Web portant le nom 'yui-calendar-localization.js'. Qu'est-ce que cela signifie à votre avis? Merci. – emre

0

Placez le code d'initialisation spécifique à la langue (comme indiqué sur la page à laquelle vous vous êtes connecté) dans des fichiers séparés par langue (par exemple "yui-calendar-de-DE.js").

Puis dans le code-behind de votre page, comprennent le bon fichier à inclure, selon la langue préférée de l'utilisateur, par exemple en utilisant quelque chose comme ceci:

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")); 

Mise à jour:

Les fichiers de localisation (que vous devez créer par vous-même) pourrait ressembler à ceci:

// 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"]); 
} 

ensuite sur votre page, où vous créez le calendrier, utilisez cette fonction pour localiser le calendrier :

// create calendar 
cal1 = new YAHOO.widget.Calendar("cal1","cal1Container", 
     { LOCALE_WEEKDAYS:"short", 
    START_WEEKDAY: 1, 
    MULTI_SELECT: true 
    }); 
// localize it 
initCalendar(cal1); 
+0

Merci pour votre réponse. Je ne peux pas remarquer un fichier comme yui-calendar-de-DE.js. Pourriez-vous expliquer ce que vous voulez dire, ou donner le lien? Merci. – emre

+0

@emreXXXXXX: Vous devez créer ce fichier vous-même, pour chaque langue que vous voulez prendre en charge. Chaque fichier doit contenir une méthode, par ex. InitCalendar(), qui initialise les propriétés localisables du calendrier (comme indiqué ici: http://developer.yahoo.com/yui/examples/calendar/germany.html). – M4N

Questions connexes