Initial setup

As a pre-requisite to contributing to the L10n program, you need to have access to code, tools, and a properly configured local environment (i.e., your personal computer). You also need to determine if a localization effort already exists for your locale. Here we'll go over the accounts you need as well as the tools and their configurations you need to set up before contributing.

New or existing

Before anything else, you need to know if you will be creating a new localization or joining an existing one. This will determine what information is most applicable to you throughout the rest of this guide.

Here's what you do:

Look through the existing localization community directory to see if one already exists for your locale.

  1. If a community already exists, reach out to them and ask how you can help.
  2. If a community doesn't exist, send an email to the new-locales newsgroup for additional guidance.

Accounts

There are a handful of accounts that you need to be aware of as you begin. They're not required for you to begin contributing, but will be required when you are preparing to produce an official release. For now, simply be aware that these will become important as your efforts progress. These accounts will store your code, contributions, and help you produce an official localization.

hg (Mercurial)
Mercurial is the revision control environment that houses the main Mozilla source code as well as localized code for each official Mozilla localization. You will need this for localizing Mozilla applications. Hg commit access is not necessary to begin localizing. After you have some experience with hg, you may want to get commit access. At that point, you must visit the Mozilla Committer page and follow the process outlined there. Here is an example bug that illustrates the process well. Use this bug template when filing your hg account registration bug. Add a request about creating your locale's repository to the new locales newsgroup.
SVN
SVN is a revision control environment that Mozilla uses to house Mozilla source websites and their localizations for each official Mozilla localization. See this wiki page about how to gain access to SVN. The SVN for Localizers guide will help you learn the most important SVN commands for l10n. Add a request about creating your locale's repository to the new locales newsgroup.
Web-based L10n tools
We'll talk about these in a little bit. For now, just be aware that should you choose to use them, you may need to create a personal account.
Mozilla LDAP
You will need a Mozilla LDAP account once you're ready to have your localization registered on the main Mozilla repositories. Add a request about creating your LDAP account to the new locales newsgroup.
Locale-specific Bugzilla component
Having a Bugzilla component specific to your locale will help us to track your localization's progress from first steps to official release. It will also notify us when you're having problems unique to your localization team's work. Add a request about creating your locale's Bugzilla component to the new locales newsgroup.

Local environment tools

Similar to accounts, there is a number of environment tools that you should install on your personal computer. These tools will help you to store your contributions, build Mozilla applications and language packs, and test your work.

Hg (Mercurial)
As noted above, we use Mercurial for maintaining Mozilla source code and localized code. Not only will you need a localization repository to store your localizations, but you need to have it installed and configured on your personal computer as well. You can find everything you need to know about installing and configuring Mercurial for your localization work here.
compare-locales
compare-locales is a Python script that helps you check your work without needing to run Firefox or another application. Install intructions are located here.
L10n checks
L10n checks is another Python script that helps you check your work without running an application. Install instructions are located here.
autoconf 2.13
autoconf is a utility that is vital to manually creating Mozilla application builds and language packs. We use version 2.13 and higher for these builds. You can find the source files and install instructions here.
wget
wget is a command-line utility that allows you to retrieve files using internet protocols. We use it for retrieving files from repositories. You can find the source files and install instructions here.
Perl
Perl is a programming language that will help you create Mozilla application builds and language packs. You can find the source files and install instructions here.
Python
Python is a programming language in which many of our L10n testing scripts are written. You can find the source files and install instructions here.
Locale Switcher or Quick Locale Switcher
Both Locale Switcher and Quick Locale Switcher are add-ons for Mozilla applications. Either one is necessary to enable you to see your work within a Mozilla application. You can install either by searching for them in Firefox's add-ons manager or following these links.
A solid, Unicode-based, text editor
Here are some suggestions:
GNU make
Make is a tool which controls the generation of executables. You can find version 3.79.1 or higher here. Unfortunately, other varieties of make won't do.

End of initial setup

Now that you've finished your initial setup, it's time for the best part: translating!