Discussing concepts around language and localization for websites and content management systems can be confusing because there are many closely related concepts are interrelated and the verbiage used to talk about these things adds to the challenge. I'm going to attempt to shed light on this area. In some cases I'll reference how these terms apply to DotNetNuke (DNN) in particular, but most of these concepts are not platform specific. Here goes:
Locale and Culture
These are technical terms and refer to a combination of geographic location and language, and it captures the idea that languages have dialects that show up in different parts of the world. The terms are equivalent: the Windows OS ships with a set of locales, but in the world of .NET programming, they are called "cultures." Examples:
|Locale / Culture Code
|| English (United States)
|| English (United Kingdom)
|| Spanish (Spain)
|| Spanish (Mexico)
A complete list of "standard" cultures can be found here.
When talking about how many "languages" a site supports, it is more precise to talk about how many "locales" are supported because this is the technical concept that is being employed to make it happen. For instance, in DNN, the "add language" option lets you choose from a list of cultures/locales.
Localization and Localized
(As in "the site was localized for France.")
This term generally means that a site was configured for one particular locale, and that all of its content and system labels reflect that locale's language. The distinction between "content" and "system labels" is important. Let's take the example of a DotNetNuke site that is being deployed for a French company, in the French language. Without making any system configurations, content administrators are able to start creating pages with French titles and content in the French language. However, there are a number of system labels, such as the links for "login" and "registration" that will appear in the default culture of US English (en-US). In order to fix this, the site administrator needs to enable the French culture (fr-FR) and install the French language pack (see below), which contains the string (verbiage) replacements in the French language. Once this process is complete, the site can be said to be "localized."
This is a DotNetNuke specific term. Language packs are collections of replacement verbiage that can be used to enable localization across the spectrum of cultures. Language packs are used to replace the "system labels" that are show to both end-users and administrators. Thus, a DNN site can be configured so that all of the verbiage on the site, including administrative screens, is in the language of your choice. Language packs are created by contributions from the DNN community (i.e. people volunteer to create and maintain language packs). See the available language packs on DotNetNuke.com. Note also, that DNN has a "language editor" feature that allows administrators to tweak or extend language packs because not all language packs are complete, and 3rd-party modules, in particular, would not be covered by language packs which generally target the labels of the core DNN platform.
Content Localization / Multilingual Content
In our discussion, above, we talk about how a site can be localized to use the language of a particular culture. For instance, a site can be localized for Mexican Spanish (es-MX). At this point, the site can support a single language. The next step would be to enable the site to be "multilingual," by which we mean that the site supports content in multiple languages and that end-users can switch between languages. "Content localization" is the term that DotNetNuke uses to describe this feature, and there is a particular process that you would got through to enable localized content on a DNN site.
While DNN has always supported site localization, it was only in version 5.2 that it supported localized content. Here is information about how to configure DotNetNuke to support content localization. Not all DNN modules support localization. This is true of both 3rd-party modules and the core modules that come with DotNetNuke. See the "shameless plug," below, for more discussion on this topic.
Location Aware / Location Detection / Language Detection
Having a site with multilingual content is great, and your users will appreciate being able to select the language that they are most comfortable with. You can go a step further, however, and try and make an intelligent guess on their behalf based upon a number of different factors. For instance, a site can use the browser settings to see what a user's language preference is. Or, you can try to determine a user's location based upon their IP address (probably using a web service to do so). If the user is browsing using their smart phone you can attempt to get their geo coordinates. Once you know the user's physical location, you can apply business rules about which language to show by default.
Just because a content management system (CMS) is set up to enable localized content, it does not follow that the CMS will perform translation for you. While I have heard of some organizations using automated translation tools in order to jump start the translation process, I have never heard of any site using automated translation services without some form of human quality assurance. The general rule is that CMS systems are designed to enable translation by human beings.
I think that covers most of the concepts that are needed when discussing language and localization for websites. In my next post I'll discuss some of the approaches that different organizations take when it comes to serving content to a worldwide audience.
Shameless Plug: If you are investigating the use of DotNetNuke for serving multilingual content (or localized content, if you prefer), be sure to check out the Constellation Suite from our sister company, Packflash. Constellation is one of the few 3rd-party DNN modules that supports multilingual content. This extends to content categories and URLs as well. Constellation is a "must have" product if you are looking to deploy a multilingual site on the DNN platform (IMHO).