How to configure a multi-lingual site in Ektron

Ektron CMS is a fully multi-lingual product that allows multiple different language versions of a content item to be created.  As of version 8.5 you can also create regions and add custom languages.  Even without the features of v8.5 you can still create multi-lingual sites easily.

When beginning an Ektron project that requires multi-lingual content, first decide whether you are running one domain or multiple domains.  Some organisations like to have one domain such as http://www.theglobalfund.org and within this domain the user can select the language that they wish to view the site in.  Other organisations such as http://www.selecta.co.uk/ provide region/country specific websites which may or may not then provide the option to choose a language.

Single domain multi-lingual sites

Having just one domain is certainly the easiest to implement but is not sufficient for organisations that wish to have a regional presence.  If you have just one domain you would typically provide a language switching control on the page which can use either the CMS LanguageAPI control or some custom API code.

With one domain, many websites will use a language identifier as part of the url; for example http://www.mywebsite.com/en-gb.  This can be achieved using Taxonomy automatic aliasing; the top category in your taxonomy would be “en-gb” and within that would be your information architecture.  Taxonomies themselves are multi-lingual so can be translated.  The “en-gb” taxonomy would be translated into “fr-fr” for French (France) and “fr-ch” for French (Switzerland).  If you also setup your taxonomy folder relationships then content can be auto-added into the taxonomy meaning your multi-lingual aliases are completely automatic!

A language identifier in your alias is useful as it helps to prevent different language versions of content items having the same alias.

Multi-domain multi-lingual sites

Ektron CMS provides a means to manage many websites from a single CMS installation called Multi-site.  Essentially you have more than one IIS website, each with its own web root but only one database.  The reason behind doing this is so that each website can have its own default language.  If you had http://www.mywebsite.de, chances are you want the default language to be German.  The CMS sets the default language of a site within its web.config file.  As you can only have one web.config file per .Net website this means you need separate sites in IIS.

So you would first install the “parent” site – this is the base to which all of your multi-sites are added.  The parent site would hold common content that is shared amongst the other “child” websites.  Each of the child multi-sites are then added using the dedicated Ektron Multi-site installer.  The child multi-sites also have to be configured within the Workarea by right-clicking on the root folder and choosing “Add Site”.

Remember that any content you add within the child site folder in the Workarea will have the domain of the site added to the start of the QuickLink.  This only happens within multi-site folders.  If you do not want this to happen then add the content to a non-multi-site folder, i.e. a folder belonging to the “parent”.

It is your choice whether these sites have their own ASPX templates, controls and PageBuilder wireframes.  Usually the physical files are the same so that organisations have a consistent look and feel across websites even if the domains are slightly different.

For more information on Ektron multi-site see here.

Disable Language Awareness

It is worth mentioning that your Url Aliasing settings.  In the workarea, go to Settings > Configuration > Url Aliasing > Settings and check the “Disable Language Awareness” button.  I find the wording of this setting to be confusing.  When “Disable Language Awareness” is checked you can browse to an alias from a non-default language piece of content.  If it is not checked then the CMS will attempt to load the alias using the default language – so if the alias does not exist in the default language you will get a 404 page not found error.

Time to add content

So you should now have an idea for how to approach setting up Ektron CMS for multi-lingual websites.  You may want to review Ektron’s documentation on multi-lingual content to make sure you have all bases covered; there are other items such as menus, images, taxonomies, etc to consider.

7 comments

  1. Hi,
    I have tried it on my Ektron 8.60 SP1 installation.
    I have set it up for 2 languages, English and German.

    Whenever i publish a content in a language, the other language automatic alias will be gone(Alias) Tab.
    Do you have any ideal on how to solve it?

    Thanks

    1. Just to clarify, you are saying that in English the alias tab is present but when you switch to German it disappears?

      1. Hi Wilson,

        After I have published a English content, I can see the Automatic UrlAlias on the Alias Tab.

        Then, I proceed to create a German version of the same content. After publishing, I can also see the Automatic UrlAlias on the Alias Tab.

        But after i switch back to the English content view. The Automatic UrlAlias disappears from the English content.

        I republised the English content again, I can now see the alias.
        Then I switched over to the German language. The Automatic UrlAlias is now disappears from the German one.

        I have also tried to disabled the Language Awareness in Ektron. But it doesn’t help.

        Thanks

  2. Hi John,
    I haven’t seen this behaviour before but it sounds a bit like a bug with the workarea. I would raise this with Ektron support and get some help from them.
    Rob

  3. Hi, I’m trying to find some help around this issue. I already contacted Ektron support and they say this is a ‘custom’ implementation. I can add any necessary code to the templates but I just cannot find any examples or details on how to do this.

    We have a multilingual site (only one site in the workarea, every content object has multiple language versions, each of them with their own alias, and every language has a different domain: .com, .mx, .co.uk, etc.) The multiple domains are setup in IIS and the template files deal with the domain mapping.

    We currently use 8.01 SP1(Build 8.0.1.087). The first time I go to any international site the automatic or manual aliases don’t work. If after that, I go to any other page the aliases work for that international site. This is the scenario:

    1. First, I go to http://www.mydomain.mx

    2. When the page loads the first time, the URL is resolved as http://www.mydomain.mx/Default.aspx?rdr=true&LangType=2058 (no alias and unfriendly URL)

    3. The second time I go to the same URL http://www.mydomain.mx, the alias work (URL stays as is).

    This happens the first time I go to any URL in any domain different than the default one (US). The URL changes and adds the langtype and contentid/pageid/rdr querystrings.

    I was told this was fixed on 8.6. I’m testing 8.6.1 now and still have the same issue. Ektron support said this is not a multi-site, this is a custom implementation and code might be needed. I was researching online and only found references to change the “LanguageLogic” method but I don’t know how. There is another talking about the customhttphandler but again I don’t know where and what exactly include in the code.Hi, I’m trying to find some help around this issue. I already contacted Ektron support and they say this is a ‘custom’ implementation. I can add any necessary code to the templates but I just cannot find any examples or details on how to do this.

    Any help would be appreciated.

    PS. I found this site that uses Ektron, http://www.selecta.co.uk/ why they don’t have this issue?. This is how international domains should work.

    1. You say that you have not used multi-site; when someone browses to an Ektron site for the first time, Ektron shows the content using the default language. The default language is specified in your web.config file. You have multiple bindings in IIS pointing to one physical web root – in other words you have one web.config and therefore only one default language. This means all of your websites are sharing a default language.

      If you have multiple IIS websites, each one can have its own web.config file and therefore its own default language. This means if I browse to the “.co.uk” site I get English, if I browse to the “.de” site I get German, etc.

      The example site you mention (selecta) does use multiple websites in IIS – this is the difference.

      When Ektron Support talk about a custom solution, what they mean is you have to write code which sets the language of your site dependent upon the domain name. In other words, if the domain name ends with”.co.uk” then set language to UK English (2057), if the domain name ends with “.com” then use US English (1033). You set the language by updating the Ektron “ecm” cookie.

      There is a catch though. The Ektron API and Server Controls depend on the “ecm” cookie. This cookie tells Ektron what language to show the content in. When you set the language for the first time, the cookie is not yet set to the correct language. The workaround is to also set the language in Session variable – all of your API calls should check this Session variable.

      When Ektron uses the “LangType” parameter this forces everything on the page to use that language. It is mostly used when you change from one language to another using a language selector.

Leave a comment