Localising the Lizard

by Brian King

Localising the Lizard

The world is becoming a smaller place, and the World Wide Web has accelerated that process. Some hail this as a wonderful phenomenon because of the vast knowledge available to everyone and the exposure to other lives and cultures. Meanwhile, others bemoan the loss of cultural identity and language dialects.

There are tools within the Mozilla project to help you get your message to specific cultural groups by speaking to them in their native tongues. Just as the Mozilla project has captured the imagination of people the world over, its tools allow us to talk to them. Just as a matter of note, there are Mozilla advocacy sites (MozillaZine) in France, Germany, China, and Japan.

Before I get into the details of using these unique Moz tools, let me first clarify some terms. Internationalisation (i18n for short; there are 18 letters between the initial i and final n) refers to the design and development of software to function in a particular locale. Localisation is the modification of the software to meet the language of a location and the adaptation of resources, such as the user interface (UI) and documentation, for that region.

After a general overview of the internationalisation project in Mozilla, I will delve further into the details of how to go about localising your Mozilla application for specific audiences. This primarily involves UI localisation of XUL and JavaScript files and the methods employed to do this. I will then discuss the tools available to translators, focusing on the most commonly used one.


Infinite Extensibility with XBL

Getting Your Work Into Mozilla

Tap the Power of Mozilla's User Style Sheets

Extending the Mozilla Editor

Mozilla News - from Meerkat

Previous Features

More from the Mozilla DevCenter

In effect, the ongoing effort within Mozilla should ensure that "English is just another language," one of the catch phases of the project.

Internationalisation and localisation projects

Mozilla 's internationalization project brings support in browsing software to a new level. Let's have a look at some at some of the high level aims of internationalisation in this context.

  • Mozilla is Unicode enabled for Latin, Cyrillic, Greek, Chinese, Japanese, and Korean. Mozilla widgets and HTML rendering can support the input and display of these languages beyond the operating system (OS) limitations.
  • Mozilla can be easily localised into different languages regardless of the underlying OS language version.
  • Most of the Mozilla localisation work is translating DTD and Java's Properties file format, which are based on open standards.
  • Localisation can be done once and run on Windows, Macintosh, Unix, and the other platforms supported by Mozilla. This is a great time saver, and indeed a cost saver, for commercial endeavors.
  • Unicode enabling for other languages/script is also under development, e.g. BiDi, the display and input of text in a bi-directional format for Arabic and Hebrew.

Due to the "open source" attitude of the Mozilla community, there are more possibilities for various languages being incorporated into this product than there would be for more "commercial" browsers. The Mozilla project isn't solely about creating software, but also hosting various localisation teams and providing help wherever possible. The Mozilla Localisation Project provides these services. There's also a localised Mozilla community and discussion group which uses many languages to discuss Mozilla development issues.

Before we get to more specifics on the Mozilla project itself, however, I have a few general thoughts on implementing a web site for international audiences.

Designing your web pages to be internationally friendly

Let's take a few moments to talk about creating web pages for an international audience. Personally, I'm not fond of sites that have flags to denote links to localised versions of the pages. Flags are national symbols and are out of place here. It is the norm in the software world to use the ISO 2-character code to signify a language. These are becoming recognised amongst a wider audience. It may be a good idea to try to sniff out users' locations using a script to find their domains. However, this will not always be reliable, as that language may not be viewers' primary language or language of choice.

A useful addition to your site would be a list of translation tools available for your visitors to use. These translation tools are becoming more and more intelligent -- one example being Babelfish. Mozilla uses a service called Gist-in-Time to carry out web page translations. Try it out for yourself and evaluate the results. I think it's very impressive. It is available in the Browser via the "View-->Translate" menu item.

Cultural awareness is another important factor to take into account. Yvonne Cleary of the University of Limerick, Ireland has written a paper concerning the impact of cultural issues on the usability of a localised web site. It's clear that language is only one consideration when designing international web sites. Presentation, navigation, quantity and quality of information are amongst the other things to take into account. Try to understand your audience as best possible. Don't be afraid to solicit suggestions or strike up business partnerships to help you better serve a community that is unfamiliar to you.

Now let's look at how Mozilla can help us reach these goals.

Files for localising your package

Locale is one of the five main components of a package, the others being content, appearance, behaviour, and platform. The architecture of a package for Mozilla's cross platform front end (XPFE) is component based. It allows for the plugging in and out of the particular component you want to work, without affecting the others. Locale is one of these components.

There are four types of files that you will need to look into to localise the whole application:

  1. DTD (.dtd) files, which contain entities that host the strings from XUL content files.
  2. Property files (.properties), which contain string bundles that are accessed by JavaScript and C++ files
  3. HTML files for certain pages installed with the application, e.g., About Mozilla
  4. RDF files

Let us now have a look at these in more detail.

Pages: 1, 2, 3

Next Pagearrow