Sitecore的语言嵌入多个站点 [英] Sitecore Language Embedding multiple sites

查看:200
本文介绍了Sitecore的语言嵌入多个站点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我期待运行两个网站王兰坤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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆