public CultureInfo DetermineCulture(LanguagePreferenceList preferenceList) { CultureInfo culture = null; foreach (string languageCode in preferenceList) { foreach (Language branch in Context.Current.LanguageManager.GetAvailableLanguages(false)) { if (string.Compare(languageCode, branch.Name, StringComparison.OrdinalIgnoreCase) == 0) return branch.Culture; if (culture == null && LanguageSelection.IsCandidateMatch(languageCode, branch.Name)) culture = branch.Culture; } if (culture != null) return culture; } return FinalFallbackCulture; }
public LanguagePreferenceList LanguagePreferenceList(string priorityLanguage) { LanguagePreferenceList list = new LanguagePreferenceList(); list.ConditionalAdd(priorityLanguage); if (Context.Current.WebContext.IsWeb) { HttpRequestBase request = Context.Current.WebContext.Request; list.ConditionalAdd(request.QueryString["zeuslanguage"]); if (HttpRequestSupport.IsRequestSystemDirectory) list.ConditionalAddCookie(request.Cookies["editlanguagebranch"]); list.ConditionalAdd(Context.Current.Resolve<IHost>().GetLanguageFromHostName()); list.ConditionalAddCookie(request.Cookies["zeuslanguage"]); GlobalizationSection globalizationConfig = ConfigurationManager.GetSection("zeus/globalization") as GlobalizationSection; if (globalizationConfig != null && globalizationConfig.UseBrowserLanguagePreferences) list.ConditionalAddRange(request.UserLanguages); list.ConditionalAdd(CultureInfo.CurrentUICulture.Name); } return list; }