Regular content management system
Let's now consider a website with the same structure we saw before, but now a dynamic website, a website that has a content management system to update their pages. We can recreate the website structure in the content management system (see image).
We have two possible strategies to show the content in the website. The first one uses only one file and passes the requested language in a querystring parameter or in a cookie. The page selects localized include files, for example, header_en.asp, header_fr.asp, menu_en.asp, menu_fr.asp. The page also uses filters and shows the appropriate content for the selected language.
Another option is to use one file for each language. In this case, the file itself will set the requested language. The file must consist of smaller include files to allow sharing layout and programming code.
Both options can lead to an excessive amount of include files, making the management of layout and functional code updates tedious and time consuming.
Let's now take a look in a more interesting alternative...