Skip to content

Setting up Umbraco for Multi-Language Websites

Umbraco is a web content management system well known as one of the simplest and most user-friendly CMS tools utilized for publishing web content. The Umbraco open source CMS version 2.0 was released on FEB 2005 and since that time a lot of enhancements and add-ons have been added.

Umbraco is based on Microsoft .Net technology and is considered as the first open source tool based on Microsoft .Net for web content management. Not surprisingly, it has become the official .NET website for Microsoft along with more than 100,000 reputable companies using it.

As Umbraco is built on Microsoft .Net Framework, it inherits the localization and internationalization features from it. Also, Umbraco CMS has a specific translator account and workflow that facilitate the process of website translation when interacting with translation agencies.

Setting up Umbraco for Multilanguage Websites and Website Translation

Two main approaches are available to deploy Umbraco for Multilanguage websites:

1- Multiple sites structure: One website per language.

2- 1:1 structure: One website for all languages.

Both solutions have advantages and disadvantages, but for practical purposes the “Multiple sites” approach is widely used over the 1:1 structured approach. The multiple sites solution provides more flexibility as it requires no obligation to translate all content. The administrator can exclude some content based on business need, target audience, local culture, etc.

FIRST STEP: Add the target languages to the CMS

(English US is installed by default)

1- Login as Admin.

2- From Sections Panel select Settings


3- From Settings tree select Languages


4- Right click  the languages node and select Create


5- Select the new target language and click Create

6- The language will be then available in the languages node


7- To delete a language select it, right click and press Delete.


SECOND STEP: Duplicate the source website (one new website per target language)

Once the Source website is ready with all the content, duplicating the website for localization is a very simple and easy process:

1- Login as Admin

2- From the Sections panel select Content


3- From the Content tree select the source website


4- Right click the website node and select Copy


5- From the copy pop-up select Content as the root node for the new website and check “Relate copied items to original” to keep track between source and copied website

6- The new website is available now in the content tree


STEP THREE: Set target language for the copied website (same steps to be repeated per website / target language)

1- Select Copied website, right click and select Manage Hostnames


2- In the Manage hostnames popup add domain name and target language. The drop down list shows the currently enabled languages we set before


3- One more configuration step needs to prevent a page links conflict between languages: Open config file named umbracoSettings.config (<installation path>/config/umbracoSettings.config.). Under <requestHandler /> settings section set the <useDomainPrefixes /> value to true


Once the target language is set for a website, by default Umbraco localizes some available items to be in the target language culture such as dates, currencies, and other regionally specific values because as mentioned before, Umbraco is based on Microsoft.NET and inherits its localization features.


By the end of this last step, the Umbraco CMS is multilingual-ready. The second phase will involve how to localize Dynamic and Static content.

Quick reminder notes about setting up Umbraco for multi-language websites:

– Using multiple websites is recommended over using 1:1 structure.

– Umbraco comes with one language installed by default (English US). Any other target language should be set by administrator from Settings section.

– To be able to track the content changes between source and target languages, remember to check Relate copied items to original while copying the source website.

Copied websites are not published until administrator manually changes the status.