The content management system Joomla! includes various language packs and translations for the user interface already. The combination of one specific language pack and the content in the same language allows you to build a website in any language you like.
If you build a website that should have more than one language you need some extensions for multi-lingual support. Those extensions will help you to maintain the translations as well as the organization of your content in the various languages. From the developer point of view it depends on the complexity of your application and the used extension by your users how you need to support multi-lingual sites.
Within this article we will give a brief introduction on the different topics and concepts. This article is for sure not complete and there are various ways out there in the internet how to realize this area. If you feel an important concept is missing please feel free to add it to this aritcle.
Joomla! 1.5 introduces the UTF-8 charset for all output, input and tables within the database. This allows you to use any language related character set for your content and also allows to have two languages stored in your database which have very different characters and scripts.
Simply speaking, this means you can store any language and any characters in your content with Joomla!. Now the issue comes with the word content. Joomla! is based on extensions which structure certain type of information. Core extensions are for example Articles, Contacts, Banners or Section and Category information. Using multi-lingual content there means you need to tell the system which language you wrote a certain text in. After you defined the original language of your content you need to translate it to those languages you want to include. In the end you might have some various structures of your site for different languages.
In general you can say the language adds a new dimension to your site which you need to manage. And of course there are some extensions for exactly this purpose.
If you try to create a new multi-lingual website the general process is not very different from a single language site. The new language dimension for your site adds some questions you need to answer in the beginning.
If you answer those questions before going through the following steps you will find it quite easy to setup a multi-lingual site with Joomla!
To use Joomla! 1.5 with more than one language you do not need to do much. In addition to the standard installation you need to install all languages you like to use in your multi-lingual site with the Language Manager. You can add as many languages as you like and there are known installations with more than 20 languages used.
From this point on you can basically start to create your structure and content. Most of the existing multi-lingual extensions do not require to be installed prior starting your site, which allows you to start with a single language site and extend it later to your needs. It is recommended to start with one language as your *original or default language*. The reason is not a technical one but an organizational. It is far simpler to setup a complete content and navigation structure for one language than starting with different languages at the same time. The language dimension adds also a new complexity to your structure and this is why the default language will help you a lot for the management later.
There are various extensions for multi-lingual websites available. The primary question is if you need a manually translated website or if automatic translation is an option for you. Mostly an automated translation does not 100% fit to what you want to say with your sentences. But if you just want to make sure your users can read your content it might be Ok.
Depending on the extension you use additional installation and configuration will be needed. Check out the related documentation and see if you can find a starting tutorial. Those are normally quite good for an initial start.
For the developers integrating multi-lingual support for an extension is an additional task. In general there are some concepts to fulfill this tasks.