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:
- Fetching of current (sid) and older (etch) package descriptions.
- Adding of new translations via an email interface.
- Reusing of already translated paragraphs from one description in other package descriptions.
- Providing of Translation-* files for mirrors and APT.
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
- Common translation rules
- Proofreading and error fixing
- Usage of the translations
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 firstname.lastname@example.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
email@example.com 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
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 firstname.lastname@example.org. 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
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
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:
- 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:
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
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).
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.
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.
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.
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.
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
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:
- All translation teams currently search new translators and reviewers which help to process the really large package list.
- Add support for improving English package descriptions during the translation/review process. Maybe this could be archived by adding a new English pseudo language containing the improved description as translation and automatic filing of a bug after a successful review.
- The new internationalisation framework based on Pootle needs a lot of work until it fulfills all of our ideas.