Launchpad Help > Translations > Your Project > Best practices
Best practices for translating software projects
About this page
The guide found under Your Project will introduce you to how translations are done in Launchpad Translations. It assumes familiarity with gettext and points to different options as well as suggesting how to do things.
This page is different in that it explains one recommended way to set up your software project for translations, including gettext setup. There are other ways of doing things but they will not be mentioned here.
Assumptions
This guide assumes that you have not yet done any internationalization (i18n) on your software project nor that any translations (localization, l10n) have been done yet. You have written a great program using English as its interface language and now you want to have it translated into other languages using Launchpad.
Prepare the source code
This part is often called the actual "internationalization (i18n)" because it enables the translation of your otherwise monolingual software. Please be aware that Launchpad (and really also gettext) only supports translations from American English (en_US) to other languages. If your software uses a different language you will need to translate it to English first.
GNU gettext
GNU gettext is the standard software used in most Free Software projects for internationalization. You can find it on the GNU website but you can expect it to be available in all modern Linux distributions. It consists of tools to use by developers and translators as well as a library that inserts the translations into the application at run time. Reading its manual (or at lest parts of it) is always a good idea when working with i18n.
Build the template
Create a Bazaar branch
Set up your project in Launchpad
Import the template into Launchpad
Review translations
Export translations from Launchpad
Deploy the translations