The Debian Description Translation Project — DDTP

The Debian Description Translation Project (which was implemented by Michael Bramer) aims to provide translated package descriptions and the infrastructure to support their translation. Even though it exists already for a few years it was deactivated after a break-in of a Debian host and has currently only basic functionality compared to the past.

The project supports:

The non-free and non-free-firmware sections in the Debian archive are not translatable at the moment because there could exist license issues which forbid e.g. translation and need to be checked carefully.

Translating more than 71000 package descriptions is a big challenge. Please help us to fulfill our goal. See also our todo list for remaining issues.

Interfaces to the DDTP

Since all interfaces use the DDTP backend, you first need to ensure that your language is already supported. This should be the case for most languages. If there does not exist such support write to or create an issue on Salsa so that your language can be activated.

The web frontend

A nice web frontend exists called DDTSS written by Martijn van Oosterhout which tries to simplify the task of translation and review.


It supports contributing translations and additionally allows proofreading. It supports a custom configuration for each language team so that each team can decide how many reviews are necessary until the description is transferred to the DDTP. It's also possible to request user authorisation, so that only a restricted group of people can perform certain actions. You also don't have to care about the encoding, the DDTSS handles this for you.

Current default properties:

number of reviews:
supported languages:
all of the DDTP
user authorisation:
no, it's open for all

It is possible to specify a default word list for a language. This is used to provide default translations via tooltips. This list is available via a link at the bottom of the language page.


The DDTSS provides the following items for all languages:

Pending translation

A list of pending translations. These are descriptions freely selectable for translation by the user. It looks like:

exim4 (priority 52)
exim4-config (priority 52)
ibrazilian (priority 47, busy)
postgresql-client (priority 47)
postgresql-contrib (priority 47)
grap (priority 45)

A language team should try to translate packages with a high priority (this is calculated using the category, e.g. essential, base, ...) first. The packages are sorted to accomplish this.

Descriptions marked with busy are already reserved by a user and cannot be selected for at most 15 minutes. If there is no commit during this time it's again marked as freely available.

A description needs to be completely translated before the frontend accepts it. So please ensure that you are able to translate the entire text before you start. Select Submit to add your translation, Abandon if you decide not to translate it, or Unfetch if the description should not be translated (for instance because it needs to be fixed first). It's also possible that you are lucky and that there is already a translation for a previous version of the English template together with a diff of the changes in the English translation which you have to integrate into your translation. You could copy and paste this old translation from the bottom part of the page and update it appropriately.

To avoid ugly fluctuation of the text width it is suggested that you do not enter newlines manually unless necessary (such as for list items). The lines break automatically. Remember that a user could add or remove minor parts during proofreading which could otherwise result in an inconsistent line length. Fixing this too makes the diff created by the review hard to read.

It's also possible to select preferred packages by name. This is useful to translate a set of similar packages, such as manpages-de, manpages-es, in order and to be able to copy and paste previous translations.

Even already translated packages can be fetched this way again, to improve them.

Pending review

A list of translated descriptions which still need to be reviewed. This list might look like the following:

 1. aspell-es (needs review, had 1)
 2. bookmarks (needs initial review)
 3. doc-linux-ja-html (needs initial review)
 4. doc-linux-ja-text (needs initial review)
 5. gnome-menus (needs initial review)
 6. geany (needs review, had 2)
 7. initramfs-tools (needs initial review)
 8. inn2 (needs initial review)

The following flags exist:

needs initial review:
The current version of this translation has not yet passed a single review.
needs review:
The current version of this translation needs further reviews, but passed already at least one.
This description was reviewed without change by the user. Other users needs to proofread it.
This description was translated or changed during a proofread by the user. Other users needs to proofread it.

If a review with corrections has already happened you will get a nice color diff which shows all changes of the last review once you select the package.

Recently translated

A list of transferred description to the DDTP. At most twenty packages together with the date of the transfer are listed.

Common translation rules

It's important that you do not change English descriptions during translation. If you recognise errors in them you should file a bug report against the corresponding package, see How to report a bug in Debian for details.

Translate the untranslated parts of each attachment which are marked <trans>. It's important that you do not change lines containing only a period in the first column. These are paragraph separators and will not be visible in APT frontends.

Paragraphs which are already translated are either reused from other descriptions or from an older translation (and thus indicate that this original English paragraph was not changed since that time). Once you change such a paragraph, it will not change all other descriptions with the same paragraph as well.

Also note that each language team has it's own preferences such as word lists or quotation style. Please follow these standards as close as possible. The most important rules are published. It is suggested that you start reviewing existing translations, either via DDTSS or by browsing descriptions in package management systems such as aptitude, first to get a feeling for the translation preferences. If you are unsure contact your language team.

Proofreading and error fixing

Only the DDTSS currently implements a review mode and only sends those translations to the DDTP which passed a fixed number of proofreads.

Once you notice common typos or other easy to correct errors such as encoding problems, it is possible to bypass any review process and to fix this for all packages at once using a script. It is suggested that only one trusted translation coordinator collects all these issues and applies the script.

Since the proofreading can take a long time (especially if only minor issues are fixed all the time), it may be an option to just ignore simple typos and inconsistencies during the review and to start a check for all of these (hopefully collected) issues later. This speeds up the review and allows to apply these corrections later in all descriptions.

Usage of the translations

Proper support for translated package descriptions is available since the APT package in lenny. Using this package every user can read the descriptions in his preferred language in all programs which use APT. This includes apt-cache, aptitude, synaptic, and various other.

APT downloads Translation-lang files from Debian mirrors. These are only available for lenny and newer distributions. The location of these files on mirrors is dists/main/sid/i18n/.

It's also possible to disable usage of translations. To achieve this just add

APT::Acquire::Translation "none";

to /etc/apt/apt.conf. Instead of none also a language code is supported.


Even though there is some progress for the DDTP there is still a lot to do:

You can find a more comprehensive list on Salsa, where you can also add your ideas and suggestions.