How to Make your module translatable in Drupal?

  • Sharebar

To let users translate your module strings, you must use the t() function. This allows the Drupal community to create translation files *.po. But this also allows user to tweak some strings to fit their needs, with the String Overrides module.

So everytime your write a sentence or a word in your module, surround your string with the t() function.

This is the bad way:

$foo = “Thank you for your submission”;

This is the good way:

$foo = t(“Thank you for your submission”);

Note that you must always write your module strings in English as this is the default language in Drupal and is used as a base to provide the localization system.

You will need to insert values in your strings:

Don’t write:

 $points = 3;

$foo = t(“You just won $points points”);

This is the good way to insert placeholders values:

 $points = 3;

$foo = t(“You just won !points points”, array(‘!points’ => $points));

Check out the resources links to learn more about t() function use.

Note that starting with Drupal 6, you can also make your JavaScript files translatable.

In your code use Drupal.t() function. Example:

greetingMessage = Drupal.t(“Your vote has been saved!”);

You can leave a response, or trackback from your own site.