/// <summary> /// Gets language embedding. /// </summary> /// <param name="configValue">The configured value.</param> /// <param name="defaultValue">The default value.</param> /// <returns>The language embedding.</returns> private static LanguageEmbedding GetLanguageEmbedding(string configValue, LanguageEmbedding defaultValue) { if (string.IsNullOrEmpty(configValue)) { return defaultValue; } switch (configValue.ToLowerInvariant()) { case "always": return LanguageEmbedding.Always; case "asneeded": return LanguageEmbedding.AsNeeded; case "never": return LanguageEmbedding.Never; default: return defaultValue; } }
private string GetItemUrl(Item item, Site site, LanguageEmbedding langEmbed, string lang) { lang = lang.Trim(); string url = null; if (LanguageManager.IsValidLanguageName(lang)) { string serverUrl = SitemapManagerConfiguration.GetServerUrlBySite(site.Name); Sitecore.Links.UrlOptions options = Sitecore.Links.UrlOptions.DefaultOptions; options.SiteResolving = Sitecore.Configuration.Settings.Rendering.SiteResolving; options.Site = SiteContext.GetSite(site.Name); options.AlwaysIncludeServerUrl = string.IsNullOrEmpty(serverUrl); options.LanguageEmbedding = langEmbed; options.Language = LanguageManager.GetLanguage(lang); url = Sitecore.Links.LinkManager.GetItemUrl(item, options); if (!string.IsNullOrEmpty(serverUrl)) { url = string.Format("http://{0}{1}", serverUrl, url); } } else { Log.Warn(string.Format("Language '{0}' is not valid", lang), this); } return url; }