From MozillaWiki
Jump to: navigation, search

Mozilla L10n Main | Join Mozilla | Overview | L10n Drivers | Communities | Meetings | Blog | Resources

Localization Tools

Several tools can be used to localize Mozilla-based products. First, you may want to have a quick look at the features comparison list of these tools here: Comparison of Mozilla L10N Tools

  • Any UTF-8-aware text editor to do all stuff manually
  • A script to convert langpacks to source trees: langpack2cvstree (by Cedric)
  • Mozilla Translator is a Java program which has been used for a long time
  • Translate Toolkit converts files to Gettext PO format to allow you to use any PO editor, widely used after Firefox 1.0 (includes many other tools to check quality). Read about one localiser's experience using it for Firefox 3.
  • MozLCDB similiar to PO but more dedicated to Mozilla products
  • Pootle a web server for localisation that allows web-based contributions and management. Combined with the Translate Toolkit it allows Mozilla products to be localised online. Virtaal is an off-line editor developed by the Pootle team.
  • Narro is a web application that allows online translation and coordination. There is an instance of this application installed on l10n.mozilla.org ready to be used, so you just need an account (OpenID is supported) and ask for administrative permissions for that account on the dev-l10n mailing list.

Still under development:

If you want to create localized Windows installers:

  • For Mozilla Suite, get mozip.
  • For Firefox and Thunderbird, get 7-zip.

In any case, you'll have to connect to the CVS repository before and after this task. You can also use an IDE with CVS support, like the Eclipse platform (see below).

Tool standards

Still under development: Tool Standards

Using the Eclipse platform

The Eclipse platform (about 100MB download, Java Runtime Environment required) has an integrated CVS support. If you have a l10n CVS account you can use it to work directly on your l10n source files. Eclipse doesn't support natively the kind of SSH keys used by cvs.mozilla.org though. You'll need a running external SSH agent while you're working on it.


Use the script provided on the CVS-SSH FAQ (assuming your private key is ~/.ssh/id_dsa):

eval `ssh-agent -s`
ssh-add ~/.ssh/id_dsa
ssh-agent -k


You can use the pageant tool provided on putty's website. Have it loaded in the taskbar, click on "Add Key" and pick your private key file.

Additionaly, you'll have to configure eclipse to use plink[1]. You can either use the one provided with TortoiseCVS (which should be located at C:\Program Files\TortoiseCVS\TortoisePlink.exe) or the one coming with putty (see above).

To do so, open eclipse and go to "Window > Preferences > Team > CVS > Ext connection method". For CVS_RSH, hit the browse button and find (Tortoise)Plink.exe. The other settings are fine at their defaults. Create a new Repository Location using ext, not extssh. Connect to cvs.mozilla.org and checkout your project.

Editing .properties files

You can safely use UTF-8 for .properties files these days. There are still some ASCII-based files in our CVS repository, though, so while eclipse can natively open .properties files, they will appear in their ASCII form which is not very pretty if your language uses other Unicode characters. You can install the Properties editor plugin which provides additional syntax highlighting and handles the Unicode conversion. Follow these instructions to install the plugin.

Locale Inspector

There is a command line tool to check locales. The following items can be verified:

  • byte order mark (BOM)
  • entities
  • placeholders (%S, #1, $var$ ...)
  • access keys
  • keybindings

The application also allows merging a locale into the en-US one. So, a valid translation can be created in seconds. See the "merge" line in the .ini file.

Download the application here: http://downloads.mozdev.org/br/locale-inspector.zip

This is a .NET application, therefore the Microsoft .NET Framework 1.1 or Mono is required in order to run it.

The application can be controlled with an .ini file.