In mojoPortal content management system, I recommend you use one language per site as the best way to organize language specific content. The idea of a site can be blurred by our support for multiple sites in a singe installation and related sites mode which allows the same users and roles across sites. By using the same or similar skins in each site a visually seamless experience can be created between the sites by linking them together with flags or text links indicating the language. This also provides the possibility in the future if traffic for one of your supported languages becomes much higher than the others, you could split them onto different servers later on.
Sites Can be Related
mojoPortal CMS has support for hosting multiple sites from a single installation. Sites can be completely independent, but in supporting multiple languages its better to use "Related Site Mode", this way all the sites share the same users and roles, but each site has separate content. This can provide a good way for you to separate the content by language and allow your users to seemlessly navigate through the sites as if they were one site. In fact, if you use folder based child sites with related site mode then once a user has authenticated in any of the sites he is also authenticated in all the sites since they share the same users and the same domain cookie.
So for example if my primary language is English and my site is http://www.somethingcool.com then the main site at that url will be in English. Now suppose we have operations in Spain and would like to now have a Spanish version of our site, so we create a child site at http://www.somethingcool.com/es/ and we have our Spanish partners write the content for that site. We link the sites together with some flag or language indicators (like you see in the upper right corner of this site - however the language sites here are not linked together using Related Sites Mode as I'm discussing here.).
Be aware that unless you some custom configuration on the Web Server, to support this folder url http://wwwsomethingcool.com/es/, after you create the site you will need to actually create the /es folder and put an empty text file there named Default.aspx. THe purpose of this file is just to make sure IIS hands the request to .NET. There are ways of configuring IIS so you don't need this, in IIS 7 there are modules that can map .NET as the default handler and in IIS 6 you can use custom ISAPI filters that are widely available. In hosted environments where you don't have control to do this you can just create the folder and file.
The other way that is commonly seen to segment different language sites is by host names. So instead of using http://www.somethingcool.com/es/, we could use http://es.somethingcool.com or www.somethingcool.es. mojoPortal supports this with host name based child sites and you can use Related Sites Mode with host named sites as well. The only difference is that because each host name has a separate cookie, they do not share an authentication ticket, so users have to sign in to each site, though the credentials are the same for each when using Related Sites Mode.
For more information, see Hosting Multiple Sites on One Installation.