Hy
As a Belgian company, we constantly are making ML sites.
Before we did migrate to DNN, we did have are own made CMS product. In this product, you did get the possibility for each page or module item to enter it in multiple languages. Our experience however is that in most cases this functionality is not needed. Most of the ML sites, first create the site in one language. When this part of the site is finished, they start translating the site. However, they do not completely translate the site. The translation of the site in a second, third, ... language will be done for just a part of the site.
When we migrated to DNN, we did face the ML problem as well. With the experience of our CMS product in mind we did start looking for a solution. So here is how we do it today.
First of all, we create a separate navigation for each language. So the page hierarchy looks a little like this:
EN
-- Home
-- Company info
---- History
-- Products
-- Contact
NL
-- Home
-- Bedrijfsinfo
---- Historiek
---- Cijfers
-- Producten
-- Contact
What you see here is an example of a 2-langual sites. As you may see, the advantage of this way of working is that the navigation in one language does not has to be the same for another language
Next we start skinning the site. In the skin, we will place a navigation skin-object (SOLPART). Here we will have to set the level of the navigation. As you may know, you have the following options : Root, Same, Child. Here we did make a change to the core in order you can pass a TabId. So we set the level equal to the tabid which represents NL or EN. As a result, you get a skin for each language.
To make sure a user can switch language, you have to place links in the skin to switch language. Do not forget to place the parameter language=nl-BE or en_EN as part of the link. In this way, DNN will switch language to.
Because this way of working makes it a little more complicated for a webmaster, because he has to specify the skin for each page he makes, we use a a little workaround in the skins in order to make the skin language independend:
<%=Iif(Threading.Thread.CurrentThread.CurrentUICulture.Name = "nl-NL","default.aspx?tabid=5104","default.aspx?tabid=5193")%>
In this way, you get a nice start for making a ML site. We did however make some small core changes:
- We change the SOLPART so we can pass a tabid as level (or use Radmenu of Telerik)
- We did add a setting in the search result, so only results starting of a tabid (NL/EN) are shown
- We did change the login module, so you can specify which will be the login page of a user for a specific language.
We are using this solution every day. We have created several sites in this way. We are also getting good feedback of the users, because in this way, you have in fact 2 separate subsites in one site. Maintenance is getting more simple. You make a page in 1 language. If it has to be translated, you copy it to the other language part of the site.
I would like to go more into detail, but at the moment i'm a little short of time.