private void SetCulture(string langType) { if (!String.IsNullOrEmpty(langType)) { try { LocaleData currentlocale = null; String cacheKey = String.Format(CACHE_KEY_FORMAT, langType); if (HttpContext.Current.Cache[cacheKey] == null) { lock (padlock) { if (HttpContext.Current.Cache[cacheKey] == null) { // Look up culture information from CMS LocaleManager localeManager = new LocaleManager(Ektron.Cms.Framework.ApiAccessMode.Admin); Criteria<LocaleProperty> criteria = new Criteria<LocaleProperty>(); criteria.AddFilter(LocaleProperty.Id, CriteriaFilterOperator.EqualTo, langType); List<LocaleData> matchingLocals = localeManager.GetList(criteria); if (matchingLocals != null && matchingLocals.Count > 0) { currentlocale = matchingLocals[0]; HttpContext.Current.Cache.Insert(cacheKey, currentlocale); } } } } if (HttpContext.Current.Cache[cacheKey] != null) { currentlocale = (LocaleData)HttpContext.Current.Cache[cacheKey]; // Set asp.net culture property. Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(currentlocale.Culture); Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(currentlocale.UICulture); } } catch (Exception exc) { _error = exc.Message; } } }