Internationalization and localization ===================================== Software needs to be adapted to the local conditions. For example, a word processor has labels, menus and buttons that need to be translated, the dates must be shown in the rigth locale format, the help system and any other text must be available in the user's language. The software industry has faced this problem for years, I've tried to learn from other's experience to provide Zope users a solution for their needs. The name of this solution is Localizer. To be multilingual ------------------ Imagine that you've developed an application, it provides a user interface with text for example in english. Then your application gets success and starts to be used in non-english speaking regions. These new users will begin to ask you about a version in their language. Then, how to do it? There're several approaches to solve this problem, you could for example fork the software and provide a version in english, another in spanish, etc.. This is the quickest solution as you won't need any special infrastructure to implement it, just fork. But, of course, fork is not an option, it would be too much work to keep the different versions in sync. The best you can do is to look at what other developers have already done for their software. Then you'll discover that this problem is addressed in two steps: * Internationalization (i18n) The operation by which a program is made aware of and able to support multiple languages. This is done once and forever. Of course, you could write internationalized software since the begining. You'll probably do it this way if you've already developed multilingual software before. In written language the **i18n** abbreviation is usually used for the term internationalization. The letter **i** is the first letter of the term, the letter **n** is the last letter of the term, **18** is the number of letters between the **i** and the **n**. * Localization (l10n) The operation by which, in a program already internationalized, one gives the program all the needed information so that it can adapt itself to handle its input and output in a fashion which is correct for some native language and cultural habits. This is done once per language. This information needs to be maintained to keep it updated in every version of the software. For the term localization the abbreviation **l10n** is used. I'm sure you already know where the **l**, the **n** and the **10** come from. To localize ----------- But this is not only about being multilingual, this is about adapting your software, your application, your web site to the local conditions of the users. For example, imagine you work for a company that sells computers in the U.S.A. and in the United Kingdom. The language of the both countries is english, you don't need to translate the text of the company's web site. But perhaps the company offers different computer models in each country, the contact address will probably be different too. This means that the web site will show different content for each market, you'll need to adapt it to the users local conditions. Continue reading please ----------------------- In this introduction I've tried to answer the question : what internationalization and localization are about?. In the following sections we'll see the details of every concrete problem, at least the ones that for now Localizer address.