As experts on Sitecore and Umbraco, we see both tools offer solutions for internationalizing and localizing content out of the box. Here, we describe how both Sitecore and Umbraco handle internationalization (hereafter referred to as I18N) and the advantages of each.
Sitecore and Umbraco both make use of dictionaries in almost exactly the same manner. Sitecore offers the ability to create multiple dictionary folders providing an ability to organize, while Umbraco offers only one dictionary. Otherwise, it is essentially the same process; create a language item, then create a dictionary item related to that language, and finally retrieve that item using a standard method. Dictionary items are typically used for common items such as form labels.
In Place versus Related
Sitecore and Umbraco differ in how they handle content items.
Sitecore works by handling internationalization “In Place”. For Sitecore, an item is identified by an ID (a unique identifier), a version (integer), and a language (“en-US”, “es-ES”, etc). To view the different versions, the user simply needs to click the flag icon in the top right of the work space to see the different language versions available and to select the version they would like to view. Sitecore also has a side by side comparison view that allows for a user to compare and edit between two language versions. Workflows can be added through packages to allow for outsourcing translation to companies like Lionbridge or Global Link.
For the front end, the web site can use a variety of methods for determining the language to display to the user. It can use the query string parameter sc_lang. it can use url patterns in conjunction with the “sites” config. Finally any custom method to determine culture can be built into your application.
Umbraco on the other hand uses a solution that allows for copying items and relating them together. Generally, the item is copied to a branch of the content tree that is under the appropriate language and then translated there. When an item is related and a user makes changes to the item, the user can send the item for translation. This process can also be used with third party companies as can be done with Sitecore.
So Who Wins?
At the most basic level, managing different versions is much easier with Sitecore. The simplicity of clicking a flag on the top to view the different versions, the side by side viewing and the ability to delete all version / language of the item in one place is a clear advantage for Sitecore.
Umbraco on the hand has an advantage in the area of URL naming. Since Sitecore by default is in place, the Url will have the same name across languages. So the following all might refer to the same item with different languages:
While the same item in Umbraco would likely follow this pattern:
In other words, the page url would also reflect the language. This site is using Umbraco and related pages. You can see this working by selecting a different language from the top menu. Notice that the Url changes; making the Url reflective of the language being delivered. We feel this is an important concept which is not available out of the box in Sitecore. Enough so, that I would suggest Sitecore I18N developers create a custom Url handling solution to achieve the same result. A simple solution for Sitecore would be to require a Url Name on the item and to create an Item Resolver that responds to that Url Name. It would be nice if Sitecore created a first class resolution to this issue.