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 review process as known from the past is not yet activated. Also the non-free section in the Debian archive is 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 20000 package transcriptions is a big challenge. Please help us to fulfill our goal. See also our todo list for remaining issues.

Interfaces to the DDTP

There exist various ways to fetch descriptions and commit translations. The original interface uses email for communication but there are also other ones.

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 debian-i18n@lists.debian.org so that your language can be activated. Also many rules for the email interface are true for other as well, so be sure to read them properly.

The email interface

To obtain a new untranslated package description from sid just send an email to pdesc@ddtp.debian.net with the subject GET n lang, where n is the number of descriptions you want to fetch (the upper limit is 9) and lang is your language code (e.g. de or pt_BR). You can also append a dot followed by the encoding to the language code to notify the server that your translations will use the specified encoding. To obtain the description of a special package package use GET package lang.

A short time later you should receive an email containing the requested number of descriptions. These are now reserved for you and will not be requestable by other interested persons until your lock times out. Now translate the untranslated parts of each attachment which are marked <trans>.

Please note that the server assumes a fixed encoding for your translation. The German language uses for example latin1. If you prefer another encoding such as UTF-8 you can specify it by changing Description-lang: into Description-lang.UTF-8:.

Once you finished your task, you should send the translated files back to pdesc@ddtp.debian.net. The subject and the body of the email do not matter and can by empty. It's suggested that you mark each single attachment file as binary (e.g. base64), since in general the translation consists of two encodings: The English part is always UTF-8 encoded, but the translated part is not. If you send the attachment as text, the DDTP server may use files with a mismatched encoding. It is strongly suggested that you check your translation in the DDTP the first time you translated a description for this kind of errors!

Once you send your translation back you will get a notification email. If your subject contains noguide this will not happen. Another command understood by the server is nothing which could be used as subject to send emails to the server.

The web frontend

Beside the official email interface there also exists a nice web frontend called DDTSS written by Martijn van Oosterhout which tries to simplify the task of translation and review.

Overview

It supports all features of the email interface 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:
3
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.

Workflow

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 and Abandon if you decide not to translate it. 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 an 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 (please note that the current DDTP functionality for this is buggy, so please avoid it if possible for now).

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.
reviewed:
This description was reviewed without change by the user. Other users needs to proofread it.
owner:
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 ten packages together with the date of the transfer are listed.

The internationalisation frontend

There exists plans to implement a new framework to aid translation of various documents in Debian, such as PO files and Debconf templates. This should also support package descriptions at some time. Once this is active and works as expected, the current DDTP and it's frontends will be shut down.

This framework will be based on Pootle. It's a Google Summer of Code project.

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.

Todo

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