You’ve created your module. But how to translate it into different languages?
Tested with:
- Translation template extractor 6.x-3.0
- Drupal 6.x
- English default + Italian translation
Prerequisites:
- Another language active apart default (English)
- Use t() function for all translatable string, including ones on
my_funny_module.admin.inc
(Administration interface).
If you use t() function correctly on your module, you can create your own translation using the handy Translation template extractor module.
- Download and install Translation template extractor module.
- Create a directory named “translations” within
my_funny_module
directory (your module directory) - Go to
admin/build/translate/extract
- Select your module from Directory lists
- Select “Language independent template” and click “Extract”
- Save file to
my_funny_module/translations
directory asmy_funny_module.pot
- In the same screen, select “Template file for Italiano translations” (where Italiano is your destination language)
- If you’ve already translated some strings into Italiano language, check “Include translations” to include these strings
- Click “Extract”, and save file to
my_funny_module/translations
directory asit.po
, where “it” is the ISO 639-2 code for Italiano language - You can add information about translation changing the first part of both files (translator mail, name, etc.)
Now, when you install your module translation strings will be added automatically. If you apply some changes to these files, and in any case the first time you complete this procedure on an active module, you have to refresh translation cache. To do this, go to admin/build/translate/refresh
and use Refresh strings and Update translations after you’ve checked all boxes. If problem persists (strings are not updated or you got some weird errors), try to reinstall your module.
One response to “How to automatically translate your Drupal module”
I recommend using https://poeditor.com/ to translate Drupal modules. It’s the safest method to use a resourceful platform and human translators to do the job.