I think most developers know how the multi-language feature of Episerver works, In the admin, you define the languages you want in the site, for each property you add the '[CultureSpecific(true)]' attribute to the properties to specify the property that it should have a different value for each language, you create a language switcher and that's it.
In the editor you will have one section in navigation tree and the content editor will switch the language to add in different content. Unfortunately, this model for some organisations doesn't work. I've worked on several projects for very large organizations that have multiple businesses across the world and for each business, the site's content (pages images, content) needs to be flexible, e.g. you should be able to change the layout for one without affecting everything else.
In these examples what you really want is a section per language/business so you add pages to one branch without it affecting every other section. There are several ways you can implement this functionality but if you find yourself with a similar requirement, after a lot of trial and error, I recommend the following approach:. The solution will involve three main files:
- Start Page template: This will have no content at all. All the template will do is redirect the user to the appropriate country landing page. This will be based on if they have an existing country code cookie set, or, based on IP.
- Home Page template, This template will be the homepage for each individual country
- An ActionFilterAttribute to set a default cookie if one doesn't exist.