Multilingual websites and localization have been challenging issues for a long time. This is especially true in Europe, where most international companies have offices in several countries. Kooboo provides a very unique and creative solution to multi-site, multilingual websites.
The normal way
I have seen many company websites developed using the methods described below.
1. A multilingual database table to store multilingual content.
It can be one table or one main table + one sub table. Typically it is done with bellows fields (In MSSQL)
ContentId (int primary key)
LanguageId (int or char(2) primary key)
2. A translation admin UI.
Editors can login and translate the content into the languages they need.
3. A multilingual website with a language ID.
Language Id can be in the URL or using URL rewrite to make it friendly. So it might looks like en.mysite.com, cn.mysite.com and nl.mysite.com
This tries to fix the problem by content translation. However, multilingual sites are not just about content localization. They are also about layout changes, web design and even functionality.
For example, if a company is running a business both in China and in the Netherlands, it would have two languages on its website, cn.mysite.com and nl.mysite.com. However, on Chinese national holidays the company might want to place special ads on the homepage of the cn site, but would not want to change anything on the nl site. With a traditional approach to multilingual sites, there is no easy way to implement this desire. Other considerations can also be problematic with traditional approaches, such as how some languages require completely different layouts from other languages.
International companies require more functions from multi sites than just serving as multilingual sites. Big organizations may have different departments, each with its own website, or companies may have one public and several intranet websites. Sharing content and design across these websites is always a challenging task.
The Kooboo solution
Kooboo has a unique solution to multilingual websites and other multi-channel publishing websites. There are two parts in one website. The site development coding part, layouts, views and modules, and the content part, articles, news, etc. Kooboo has solution for both of them.
Site inheritance and localization is Kooboo’s solution to multilingual or multi channels publishing websites. This is one of the key reasons why companies choose Kooboo.
At Kooboo, the concept of inheritance in Object Oriented Programming is extended to web development. A whole website is used like an object; a sub website can inherit everything from parent site and localize the elements it wants. The sub website can localize a layout or a view, edit label text, and create the subsite’s own theme file.
In order to fully use the concept of inheritance, the most important thing is to define the site relations. Before implementing multi sites, you may want to draw a site relation. Below is an example of site relation in Kooboo CMS.
For multi-channel publishing, you may draw another relation like the one below:
The principle of designing site relations is that a sub site inherits everything from its direct parent site and is able to localize elements.
In the example above, EN is the main site, which is the application where you should define global elements which might be used by other sites. A layout or theme defined in the EN site will be accessible from all other sites.
The CN site inherits from the EN site. The CN site will be able to access a content layout X defined in the EN site However if the CN site localizes layout X from the EN site, then the sub sites of the CN site can only use the localized layout X on the CN site. Asia has different cultural background, which might require different layout and web design, so it would be reasonable to create an Asian main site and make the CN site inherit from the Asian main site or from other Asian sites.
Content broadcasting and sharing
Each website can have its own content database or connect to the database of another website. Each content database can broadcast content or receive content broadcasted from other websites.
For more information about content broadcasting and sharing, please refer to our document on Content Broadcasting