Last updated March 23, 2012. Created by nedjo on September 4, 2008.
Edited by sylvain_a, Kristen Pol, jhodgdon. Log in to edit this page.

Drupal modules may be installed on sites in different languages, or even multilingual sites. For that reason, if your module will be distributed to others, it is a good idea to build support for different languages into your module.

The basic steps for building in multilingual support are:

  1. Ensure the code-based strings in your module (i.e. literal text that is shown on your module's screens, blocks, etc.) are translatable. See the Localization API handbook section for information.
  2. Every time you make a tagged/numbered release of your module, the Drupal Localization Server will pick the translatable strings out of your code, and put them up on the server so that people can translate them to different languages.
  3. If your module stores user-entered information outside of nodes (settings, custom database tables, etc.), ensure that that information can be translated. See the Making your Custom Data Translatable page for more information.

Most of the resources on this topic can be found in the Multilingual handbook. This includes a whole Building multilingual sites with the Internationalization (i18n) module section, as well as tutorials and links on the subject.

The following resources on internationalization in Drupal 6 are also useful for reference. (Also, check out the sub-pages listed at the bottom of this page.)

For Drupal 7, check out this is of Drupal 7 internationalization posts (off-site).

The Internationalization group at is a site for collaboration and support around internationalization.

Looking for support? Visit the forums, or join #drupal-support in IRC.