Skip to content

How to Create a Multilanguage Website with Umbraco

Umbraco is an open source content management system (CMS) used as the foundation for many well recognized websites. Umbraco is a platform that is designed not to get in your way. There are no predefined content schemas or templates and you’re not locked into doing things “the Umbraco way”.

The Umbraco CMS enables users to localize websites into many languages. To enable localization in Umbraco’s back-end, the user is given several tabs in any document template representing the different languages. Then users post-fix all the fields with the culture code when creating them in the document type.

Step One: Add Languages

You first need to add the languages you want to localize into.

Go to Settings > Languages > Create now you have a list of languages you can localize into, choose your language, then click Create. You can add all the languages you need to add to your multilanguage website.


Step Two: Copy Content

In this step you will need to copy your home content for each language you want to implement on your website.

Step Three: Cultures and Hostnames

Now for the system to detect which languages/cultures the user wants, we use subdomains, e.g.: and Simply use the native Umbraco features to set up host headers per domain.

I think the subdomain or extension domains are necessary because you must be very careful not to duplicate content, which search engines don’t like. It is possible to do without domain changes, but I like the clear and obvious solution it provides.

You basically have two options available to you, subdomains or subdirectories. A subdomain would look something like and will direct a visitor to the Arabic version. The alternative approach is to use subdirectories, like

To set up a host in Umbraco, right click on the homepage and select “Culture and Hostname”.


Step Four: Dictionary

Not all content is edited through the content section, some of it may be written in the template, for which Dictionary items are useful.

Umbraco provides us with a Dictionary type. The C# Dictionary is a key/value pair. In Umbraco, a Dictionary is a key/multi-value pair. After you set up multiple languages and create a new Dictionary, you can add different values for each language.

To create a Dictionary, go to Settings > Dictionary > Create. Lastly, to display the Dictionary, we use this handy snippet @Umbraco.GetDictionaryValue(“Placeholder”); .