0

With dnn multilanguage 9.1.1 I need to insert hreflang meta in the headers of all pages.

<link rel="alternate" hreflang="it" href="http://www.acme.com/it/" title="Italian">
<link rel="alternate" hreflang="en" href="http://www.acme.com/en/" title="English">
<link rel="alternate" hreflang="de" href="http://www.acme.com/de/" title="German">

I found the way to get CurrentUrl using:

DotNetNuke.Entities.Tabs.TabController.CurrentPage.FullUrl

I've found that in SitemapBuilder.cs there some commented code that implement alternate hreflang:

private void AddURL(SitemapUrl sitemapUrl, XmlWriter writer)
    {
        writer.WriteStartElement("url");
        writer.WriteElementString("loc", sitemapUrl.Url);
        writer.WriteElementString("lastmod", sitemapUrl.LastModified.ToString("yyyy-MM-dd"));
        writer.WriteElementString("changefreq", sitemapUrl.ChangeFrequency.ToString().ToLower());
        writer.WriteElementString("priority", sitemapUrl.Priority.ToString("F01", CultureInfo.InvariantCulture));

        //if (sitemapUrl.AlternateUrls != null)
        //{
        //    foreach (AlternateUrl alternate in sitemapUrl.AlternateUrls)
        //    {
        //        writer.WriteStartElement("link", "http://www.w3.org/1999/xhtml");
        //        writer.WriteAttributeString("rel", "alternate");
        //        writer.WriteAttributeString("hreflang", alternate.Language);
        //        writer.WriteAttributeString("href", alternate.Url);
        //        writer.WriteEndElement();
        //    }
        //}
        writer.WriteEndElement();
    }

How can I get all alternate URL for current page?

Machavity
  • 30,841
  • 27
  • 92
  • 100
ar099968
  • 6,963
  • 12
  • 64
  • 127
  • What do you mean by alternate url? A different domain name mapped to the same portal? However you could mean http://www.acme.com/default.aspx?tabid=xx, that also works. – VDWWD Mar 15 '18 at 19:37
  • For alternate URL I mean all translated relative page of the current URL (like the commented snippet). In my case I've multilanguage website based on folder like: www.acme.com/en, www.acme.com/es etc. – ar099968 Mar 16 '18 at 09:12
  • I found also that using: DotNetNuke.Entities.Tabs.TabController.CurrentPage.DefaultLanguageTab.LocalizedTabs I've all translated pages but no information about language full name. Is this the correct way? – ar099968 Mar 16 '18 at 09:14

0 Answers0