Translator's guide
Drupal translations can be obtained from the download page.
The interface translation of Drupal and contributed modules/themes is a separate process from the development of these projects themselves. Developers of Drupal and the modules/themes place specially marked text into the code, which signify text to be translated. An extractor program is required to collect these strings and generate a translation template, which only contains these strings, without the surrounding program code. Because there are existing industry standards in the translation area, we have chosen an established format with mature tools for these templates.
The GNU Gettext toolset provides solutions for most translation needs. Because Drupal uses custom markup for identifying text to translate, we provide our custom tools to generate Gettext translation templates, but from that point, any Gettext tool can be used to work with the templates and translations (a simple text editor is often enough). Drupal can import the translated Gettext templates. Drupal.org provides hosting of the translation files in separate places, depending on what you translate.
Translation processes
The process of creating translations is as follows (click on it for zoomed view):
Translating Drupal core and contributed modules/themes (represented by 'module' on the figure) are similar processes, but there are important differences.
Drupal core translations
To offer a consistent base to work with, we generate the Drupal core templates for every Drupal release, so translators can download the pregenerated translation templates and work with their tools to finish the translation. There is no need to worry about generating the templates yourself in this case. Keep in mind that we only generate templates when a release is close. Otherwise there would be an unstable template set to work with, and you would need to redo your work every week a major change lands in Drupal. You can use any editor comfortable to you to translate these templates. Often you will find previous translations for earlier Drupal versions, which you can reuse with the existing Gettext toolset (read on for more information). At the end of your work, you will get a set of translated files. Name them with .po extensions instead of the template's .pot extensions. Once you get the translations into our version control system and there is a translation release, they will get packaged for download.
If your language does not yet exist in our system, you can create a new translation project by adding a directory with your language code to contrib-cvs/translations, and then adding a project on the drupal.org web interface. If you don't have a CVS account, create an issue on the Translation templates project and upload your translation files there. Some helpful developer will hopefully come by and put them into CVS for you. In this case a project for your translation will be created, you will be made the maintainer. Finally your translation will become available on the download page.
Contributed Drupal module/theme translations
As the figure shows, contributed module/theme (called module from now on) translations are a bit more complex. Some developers generate translation templates for their module, and put them into their module's po/ directory. This is a nice gesture, but unfortunately these templates get outdated quickly. So it is advised that you generate fresh templates with the translation template extractor when you start translating. Translations of modules currently get to their module directory, into a 'po' subdirectory. If you have a CVS account, you can commit your file there, but if you don't have one, you need to submit an issue against that module, and let the module maintainer commit your translation.
Read more:
- About the contributions CVS repository where all the translations are managed.
- How to request write access to the CVS repository, so you can work on your translations yourself.
- The tools we developed to generate translation templates can be found in the Translation template extractor project.
- Overview of translation, multilanguage content, and internationalization resources

