Programmatically set Alternate languages
I’m using variations again. But this time the backend has to be multilingual too.
So I have to set up the alternate languages.
Since I want to help my users when they set up a new site, I’m using the code below in combination with a WebProvisioned event receiver.
/// <summary>
/// Activates all language packs that are installed on SP2010
/// </summary>
/// <param name="properties"></param>
private void SetAlternateLanguages(SPWebEventProperties properties)
{
try
{
SPWeb web = properties.Web;
SPWebTemplateCollection templates = properties.Web.Site.GetWebTemplates(web.Language);
SPWebTemplate template = templates[web.WebTemplate];
if (template.SupportsMultilingualUI)
{
web.IsMultilingual = true;
SPLanguageCollection installed = SPRegionalSettings.GlobalInstalledLanguages;
IEnumerable<CultureInfo> supported = web.SupportedUICultures;
foreach (SPLanguage language in installed)
{
CultureInfo culture = new CultureInfo(language.LCID);
if (!supported.Contains(culture))
{
web.AddSupportedUICulture(culture);
}
}
web.OverwriteTranslationsOnChange = true;
web.Update();
}
}
catch (Exception ex)
{
//Log the error
}
}
Of course has MSD more information about this subject.
Reacties
Een reactie posten