Sitecore的语言嵌入多个站点 [英] Sitecore Language Embedding multiple sites
问题描述
我期待运行两个网站王兰坤Sitecore的安装。
I'm looking to run two sites off one Sitecore install.
第一现场将只在英国英语,因此我将不包括在文件路径的语言。 languageEmbedding =从不
The first site will only be in UK English therefore I won't include the language in the file path. languageEmbedding=never
第二个站点将在多国语言,我需要在文件路径的语言。 languageEmbedding =总是
The second site will be in multiple languages and I need to include the language in the file path. languageEmbedding=always
有没有一种方法,我可以定义多个链路管理器,并配置站点使用一个特定的链路管理器?
Is there a way I can define multiple link managers and configure the sites to use a specific link manager?
推荐答案
我已经找到了最好的方法是创建一个支持两个场景自定义链接经理。然后有一个配套的配置设置,它定义了语言是否被嵌入。
I've found the best way was to create a custom link manager that supports both scenarios. Then have a supporting config setting which defines whether the language is embedded.
public class LanguageLinkProvider : LinkProvider
{
public override string GetItemUrl(Item item, UrlOptions urlOptions)
{
urlOptions.SiteResolving = Configuration.Settings.Rendering.SiteResolving;
string sites = ConfigurationManager.AppSettings["EmbedLanguageInUrl"];
var splitSites = new List<string>();
if (!string.IsNullOrEmpty(sites))
splitSites = sites.Split(';').ToList();
if (splitSites.Contains(urlOptions.Site.Name))
urlOptions.LanguageEmbedding = LanguageEmbedding.Always;
else
urlOptions.LanguageEmbedding = LanguageEmbedding.Never;
return base.GetItemUrl(item, urlOptions);
}
}
这篇关于Sitecore的语言嵌入多个站点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!