Ci-dessus, la capture d’écran du site en développement …
Nous avons un contrôle DropdownList et ses postsbacks SelectedIndexChanged it, puis nous changeons la culture du site et il charge ensuite les fichiers de ressources respectifs.
DropDownList Code ASP.NET
Classe commune héritée de toutes les pages Web
using System; using System.Web; using System.Threading; using System.Globalization; public class languagebase : System.Web.UI.Page { protected override void InitializeCulture() { try { ssortingng LanguageCode = Request["ctl00$ucMenu$ddlLanguage"]; // Language Drop Down Control in Front End if (!LanguageCode.IsNullOrEmpty()) { setCulture(LanguageCode); // Set Culture language from drop down Request.Cookies["LanguageCode"].Value = LanguageCode; // Update REQUEST Cookie language from drop down SetCookies(LanguageCode); // Set Cookie language from drop down } } catch(Exception ex) { setCulture("en-US"); // Set default language Request.Cookies["LanguageCode"].Value = "en-US"; // Update REQUEST Cookie language to default SetCookies("en-US"); // Set default language } base.InitializeCulture(); } private static void setCulture(ssortingng LanguageValue) { Thread.CurrentThread.CurrentUICulture = new CultureInfo(LanguageValue); Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(LanguageValue); } public void SetCookies(ssortingng strLanguage) { System.Web.HttpContext.Current.Response.Cookies["LanguageCode"].Value = strLanguage; System.Web.HttpContext.Current.Response.Cookies["LanguageCode"].Expires = DateTime.Now.AddDays(15); } }
Méthode d’extension (juste pour des raisons d’information)
public static Boolean IsNullOrEmpty(this Ssortingng original) { return ssortingng.IsNullOrEmpty(original); }
Exemple de contrôle sur lequel la ressource localisée n’est pas chargée
Problème à scope de main
Ici, si je recharge la page à partir de la barre d’adresse du navigateur, les ressources sont chargées correctement. Je suis juste en train d’imaginer comment il est possible que certaines commandes aient des ressources en anglais et certaines ont d’anciennes ressources en italien lors du changement de culture.
J’espère que je l’ai bien expliqué.
J’ai changé le contrôle HyperLink à la syntaxe suivante et le tour est joué! Ça marche maintenant.
<%= GetLocalResourceObject("hlnkMyProperties")%>