Copyright © 2002-2004 © Christian Perrier
Copyright © 2003-2004 © Dennis Stampfer
Copyright © 2001-2004 © Petter Reinholdtsen
This manual is free software; you may redistribute it and/or modify it under the terms of the GNU General Public License.
Abstract
This document describes how Debian Installer (D-I) internationalisation and localisation are handled.
It is aimed at being used as a reference for all D-I translators and developers when i18n/l10n topics are involved.
Table of Contents
The first section explains how translators need to organize their work in order to have the whole Debian GNU/Linux installation process localized (l10n) in their own language. It also explains how to get l10n for Debian packages involved during the installation process though not strictly speaking part of Debian Installer.
The second section explains how Debian Installer (D-I) packages maintainers should proceed for getting the D-I packages they maintain properly internationalised (i18n) and thus ready for translation (localisation==l10n).
The third section explains level 1 translations are handled in Debian Installer (D-I) packages.
This document is maintained up-to-date according to processes and methods by the D-I internationalisation (i18n) coordinator.
Some members of the D-I team have taken the responsibility of the coordination of the translators and translators teams. In all documents regarding D-I i18n process, they are referred to as the D-I i18n coordinator.
Please look at the i18n/coordination.txt file to get information about the current D-I i18n coordinators.
When starting to translate D-I, please follow the following steps:
Several actions are needed for a new language to be supported in D-I. These will be called the level 0 of the translation work.
Get in touch with the D-I i18n coordinator. Please provide your real name (the Debian Project encourages the use of real names) and possibly your GPG key (this is not mandatory but could help in the future).
For a language to be supported completely in the installer and later in the Debian distribution, at least "locale" must exist for this language.
This document is not aimed at describing locales and what is the information they contain. As a rough description, a locale describes specific properties of a language/country combination. For instance, the "de_DE" locale describes specifics of the german language in Germany:
<unorderedlist> <listitem>name of the days of the weeks (and abbreviations)
</listitem> <listitem> name of the months (and abbreviations) </listitem> <listitem>official symbol of the currency
</listitem> <listitem>writing numbers
</listitem> <listitem>writing dates
</listitem> <listitem>writing telephone numbers
</listitem> <listitem>collation order for sorting alphabetic lists
</listitem> <listitem>usual paper size
</listitem> <listitem>.../...
</listitem> </unorderedlist>Writing a locale need to be used to the locale files format, so don't be afraid by this : this part may be handled by a i18n specialist in Debian, most often one of the D-I i18n coordinators. You will only need to provide him/her the above informations when (s)he will need it.
First needed is having your language added to languagechooser (the package responsible for choosing language at the very beginning of the Debian Installer process) This will often be handled by the D-I i18n coordinator.
The D-I i18n coordinator will indicate you the ISO-639 code for your language if you don't already know it, as well as the official English name for your language. In the rest of this document, the language code will be replaced by xx.
Please provide the translation for your language name (with an initial capital letter if capital letters make sense in your language) and send it to the i18n coordinator as a single UTF-8 file containing the language name in your own language. UTF-8 is mandatory here. For instance, the French translator will send a file containing the single word: Français.
During initial discussions with the D-I i18n coordinator you will need to provide details about the method for displaying your language in a console environment (display under the X Window System is out of scope for D-I). If you already know about console font and keyboard specifics, please provide this information (D-I and more generally Debian uses the console-tools and console-data packages for handling console input and output).
Provide a file containing all characters needed for properly displaying your language, not including characters which are part of the ASCII character set (characters in the 32-127 range). This file will be used by the font reduction mechanism (the UTF-8 font used in D-I is reduced for size constraints) and is needed for all Latin languages and all non-Latin languages with reasonably sized alphabet. If you language uses hundreds or thousands of characters, the use of this file is not needed and you should rather check that the bterm-unifont package includes all characters needed by your language. Content example for French: àâéèëêïîôùûüÿÀÂÉÈËÊÔÙÛܟǰ.
If you're aware of it, please provide the name of the most used locale(s) for your language. The D-I i18n coordinator will check whether such locale already exists in Debian. If no locale for your language already exists, the D-I i18n coordinator will build one and will probably need your help for this. Of course, if you have some knowledge about locale files writing, you can provide one by yourself or help for this.
If you don't know what a locale is, don't worry : the D-I i18n coordinator will handle this part of the work;
Please mention if your language is usually spoken in more than one country. Such checks will be made by the i18n coordinator, but your help will be appreciated here.
If you're not used to GNU gettext files (PO files) handling and the use of dedicated PO files editors and tools, please refer to the Editors and tools section of this document.
In any cases, please refer to the Translation methods and advices for information and guidelines about the way you should work.
Be aware that involving yourself into D-I translation is not a one-time work. The Debian Installer is always work in progress and your translations may require some attention or some new work from time to time even after you completed it.
When you start working on translations, please announce this in the <debian-boot@lists.debian.org> mailing list and get in touch with the D-I localisation coordinator. You will then be listed as a translator in your language and thus will get, by private mail, important general announcements by the i18n coordinator.
Welcome on board : you are now a D-I team member! In D-I development process, translators are NOT a special kind of developers. I18n and l10n are full part of the development and translators are involved in all this development. Several D-I developers started by working on translations and later contributed to other pieces of code.
You are strongly invited to subscribe to <debian-boot@lists.debian.org> and debian-i18n mailing lists.
The first is the general mailing list about Debian Installer development. This is a quite high traffic list, though easy to filter because a lot of mails here are automatic mails when new packages are uploaded or bugs are reported.
The latter is a low traffic list for discussions about topics related to internationalisation (i18n : the actions and tools used for preparing software to work in different languages and environments) and localisation (l10n : the actions and tools used for doing softare translation) in the Debian GNU/Linux distribution.
Mailing lists subscription information and other informations related to Debian mailing lists are available at http://lists.debian.org/.
If you happen to not be able anymore to work on the translation of D-I, please notify the i18n coordinator. When doing so, please make your best for pointing him/her to other l10n resources who may be able to continue the work on your language. Don't be ashamed quitting : this is the way free software development works : real life has its constraints and all of us have to deal with them...
The Debian Installer translator process has been divided into several levels which represent steps towards a complete translation of the installer for the Debian GNU/Linux distribution and, more generally, the translation of the whole distribution itself.
You are suggested to work in the order detailed below, level by level. Inside each level, complete the steps in the described order. This order is related to the degree of importance of each material which needs translation.
The sections below will give you details and context about each level components as well as instructions for getting the material which needs translations as well as sending back the translated material.
Please read them carefully, even if you already worked on Debian translations and even if you are an old timer D-I translator.
Due to the granularity of Debian work and more specifically the packages system, you may find differences between the various packages a bit annoying (some use SVN, some others CVS, some other no repository at all...). This is a consequence of the work organisation in Debian. The general i18n team is working on simplifications of translators work by hiding all the gory details from translators. This has not been achieved yet...
The details about what follows are in the next section. This list is here for being used as a quick reference by translators who are well used to the levels concepts.
Beginners are requested to read the next section as well.
level 1 : all core D-I packages
level 2 : all non core D-I material involved for user interaction screens during a *default priority* installation of a Debian base system with default choices:
newt (programs)
base-config (programs and debconf)
shadow (debconf)
tasksel (programs, debconf, tasks)
iso-codes (iso_3166)
console-data (debconf)
exim4 (debconf)
level 3 : all non-core D-I material involved for user interaction screens during any type of installation of a Debian base system. This will include rarely used packages and packages which may display their screens under certain circumstances:
popularity-contest (debconf)
discover1 (debconf)
aptitude (programs)
pppconfig (programs)
xdebconfigurator (debconf)
localization-config (debconf)
console-common (debconf)
dictionaries-common (debconf)
pcmcia-cs (debconf)
level 4 : all packages which may display messages to the screen during any type of installation of a Debian base system:
debconf (program)
discover1 (program)
dpkg (program)
apt (program)
shadow (program)
level 5 : all Debian base system packages (debconf+programs)
level 6 : all Debian packages of priority Standard (debconf+programs)
level 7 : all other Debian packages (debconf+programs)
All level 1 translations are related to D-I first stage.
In D-I jargon, the first stage is the part of D-I which occurs from the initial boot up to the first (and only) reboot of the system. All user interactions screens shown to users during this stage are part of the first level for l10n. This means that the translation work must start by these.
The major part of translatable material here is spread over core D-I packages. The package development is handled in the main D-I Subversion (SVN) repository.
Some material (country names and keyboard maps names) are handled in non core D-I packages. This material will be part of the level 2 of translations.
If the translation work for your language did not already started, you have to copy the packages/po/template.pot to xx.po (where xx is the ISO-639 code for your language) and you can start working on translations (please have a look at the paragraph giving some advices about tools and methods).
Translators who already used the old method for translating D-I core packages, please refer to the Transition from "old" (pre-RC1) work method to "new" work method section in the Appendix section at the end of this document.
The D-I core file uses hundred of strings which represent the content of the screens which are or may be shown to D-I users during the installation process.
Please carefully read the comments which may be put with these strings as they may contain indications or hints for translators.
Getting files for level 1You are highly encouraged to work on a local copy of the Subversion repository for D-I. See Working with D-I Subversion repository section of this document.
If you can't work with SVN: Check whether an incomplete translation exists for your language: http://people.debian.org/~seppy/d-i/level1/files/xx/packages_po_xx.po
If it doesn't exist, get the POT file at: http://people.debian.org/~seppy/d-i/level1/POT/template.pot
Copy template.pot file to xx.po or use the existing xx.po.
Sending/commiting files for level 1You are highly encouraged to work on a local copy of the Subversion repository for D-I. See Working with D-I Subversion repository section of this document.
If, for some reason, you can't work with SVN, the translation file should be reported as a bug against the debian-installer package. Please see the Reporting bugs against Debian packages section of this document.
Most level 2 translations are related to D-I second stage.
In D-I jargon, the second stage is the part of D-I which occurs from the system reboot up to the Installation is finished screen followed by the first login: prompt. This stage is, technically speaking, the whole run of the base-config program.
All packages which interact with users during this second stage while a Debian base system is installed, with the defaults level of complexity for the asked questions (high priority installs in D-I jargon)) are considered part of the level 2 of l10n for D-I.
This includes two packages maintained by the D-I team as well as a few other regular Debian packages:
newt
base-config (D-I team)
shadow
tasksel (D-I team)
iso-codes
console-data
exim4
Iso-codes and console-data packages material is indeed used in D-I first stage but including them in the level 1 of translation would induce too much complication to statistics maintenance and would be confusing for translators. This is why they are considered part of the level 2.
Please follow the order below for translating files. This means that you should first translate base-config, then shadow and so on...
The newt package is a library (whiptail) which includes widgets used by the most popular interface to the debconf software, the software involved in packages configuration steps. These widgets include the Yes or No widgets used by boolean templates, as well as the OK or Abort buttons text.
The translation of newt is very simple as the above shows.
Getting files for newtThis package is a regular Debian package. The package maintainer currently does no use any CVS or SVN repository.
This package's l10n material is in one single file:
po/newt.pot : whiptail widgets translatable text
Check whether an incomplete translation exists for your language: http://people.debian.org/~seppy/d-i/level2/files/xx/newt_po_xx.po
If it doesn't exist, get the POT file at: http://people.debian.org/~seppy/d-i/level2/POT/newt_po.pot
Sending files for newtThe translation file must be reported as a bug against the newt package. Mention that the file is the debconf translation.
Please see the Reporting bugs against Debian packages section of this document.
The base-config package is the core of the second stage of the installation of a Debian system. It consists in a set of tasks which may be called from a general menu. Each of these tasks is responsible for a specific operation (such as clock/timezone settings, users creation...). Some of these tasks are directly part of base-config, some others are handled by separate packages (which translations are part of level 2 and level 3)
This package is, technically speaking, a regular Debian package. However, the package maintainer is the D-I team and the package is managed and developed the same way core D-I packages are managed. In particular, translators automatically get commit access to the base-config SVN repository when they request for commit access to D-I repository.
Getting files for base-configThe base-config package maintainers use a SVN repository hosted on Alioth. Direct SVN commit/checkout access is automatically granted to D-I registered translators.
This package's l10n material is spread over two files. These are, by order of importance (most important first):
debian/po/templates.pot : screen shown to users while the program runs.
po/base-config.pot : messages displayed by the program;
If you can't work with SVN:
Check whether incomplete translations exist for your language: http://people.debian.org/~seppy/d-i/level2/files/xx/base-config_po_xx.po http://people.debian.org/~seppy/d-i/level2/files/xx/base-config_debian_po_xx.po
If they don't exist, get the POT files at: http://people.debian.org/~seppy/d-i/level2/POT/base-config_po.pot http://people.debian.org/~seppy/d-i/level2/POT/base-config_debian_po.pot
Sending/commiting files for base-configIf you commit your translations directly to SVN, don't forget to update the debian/changelog file accordingly. See Updating "debian/changelog" entries for Debian packages section below in this document.
If, for some reason, you can't work with SVN, the translation files should be reported as bugs against the base-config package. Don't forget to mention whether the file(s) are program translations (po/ directory) or debconf translations (debian/po/ directory).
Please see the Reporting bugs against Debian packages section of this document.
The shadow package includes several core utilities for a Unix system (login, passwd...) as well as the root user password setting step and the creation of a non-privileged user.
It is installed and configured from base-config which triggers some of these operations and thus implies user input.
The programs (passwd, login and so on) are themselves i18n'ed but this translation is not considered in level 2, but in level 4 (see the details about this level). The only level 2 translation is the debconf translation (user input screens).
Please be very careful when translating the shadow user interaction screens. The most important screen is the one asking for the root password. Please keep it short so that the screen fits on one screen. Avoid jargon (D-I is targeted to low skilled users and to Unix beginners). For instance, try possibly to keep the mention of root being the system administrator.
Another potential source of confusion are the screens asking about the newly created user real name and login name. The English version tries to be clear about what is what...so please try to keep your translation clear also.
Getting files for shadow (level 2)This package is a regular Debian package. The package maintainer currently does no use any CVS or SVN repository. However, he delegated the handling of the package's localisation to the D-I i18n coordinator.
This package's l10n material for level 2 is in one single file:
debian/po/templates.pot : screen shown to users while the program runs.
Check whether an incomplete translation exists for your language: http://people.debian.org/~seppy/d-i/level2/files/xx/shadow_debian_po_xx.po
If it doesn't exist, get the POT file at: http://people.debian.org/~seppy/d-i/level2/POT/shadow_debian_po.pot
Sending files for shadowThe translation file must be reported as a bug against the shadow package. Mention that the file is the debconf translation.
Please see the Reporting bugs against Debian packages section of this document.
For shadow, most translations are included in specific releases of the package, built by the D-I i18n coordinator (these are called l10n NMUs).
The tasksel package, called from base-config for each installation, is responsible for proposing tasks for trigerring the installation of Debian packages. A task is a collection of several individual Debian packages all related to a specific activity.
The tasksel package is, technically speaking, a regular Debian package. However, the package maintainer is the D-I team and the package is managed and developed the same way core D-I packages are managed. In particular, translators automatically get commit access to the tasksel SVN repository when they request for commit access to D-I repository.
As you will notice, several tasks are related to localised environments. These tasks install packages that are likely to be useful when using Debian with the mentioned languages. These tasks are automatically tagged for install when the given localised environment has been used with D-I.
For instance, if D-I is run in French language, the french task will be automatically installed (not the -desktop variant which is optional because, through the dependency system, it triggers the installation of X Window System and huge packages such as OpenOffice).
If your language does not currently have such task, feel free to provide one. Look for example tasks in the tasks/ directory of the source pakcage.
Getting files for taskselThe tasksel package maintainers (the D-I team) use a SVN repository hosted on Alioth. Direct SVN commit/checkout access is automatically granted to D-I registered translators.
This package's l10n material is spread over three files. These are, by order of importance (most important first):
debian/po/templates.pot : screens displayed to users for prompting them about tasks to be installed;
tasks/po/debian-tasks.pot : tasks names and descriptions. Tasks are a common way to have several Debian packages installed at a same time. They group together packages with common goals;
po/tasksel.pot: messages and errors displayed by the program.
If you can't work with SVN:
Check whether incomplete translations exist for your language: http://people.debian.org/~seppy/d-i/level2/files/xx/tasksel_po_xx.po http://people.debian.org/~seppy/d-i/level2/files/xx/tasksel_tasks_po_xx.po http://people.debian.org/~seppy/d-i/level2/files/xx/tasksel_debian_po_xx.po
If they don't exist, get the POT files at: http://people.debian.org/~seppy/d-i/level2/POT/tasksel_po.pot http://people.debian.org/~seppy/d-i/level2/POT/tasksel_tasks_po.pot http://people.debian.org/~seppy/d-i/level2/POT/tasksel_debian_po.pot
Sending/commiting files for taskselIf you commit your translations directly to SVN, don't forget to update the debian/changelog file accordingly. See other entries in this file for reference.
If, for some reason, you can't work with SVN, the translation files should be reported as bugs against the tasksel package. Don't forget to mention whether the file(s) are program translations (po/ directory), debconf translations (debian/po/ directory) or tasks translations (tasks/po directory).
Please see the Reporting bugs against Debian packages section of this document.
A core D-I package (countrychooser) uses country names and codes from the iso-codes package. The country name translations are taken from this package instead of just sitting in the countrychooser package.
For this reason, you need to translate the iso_3166.tab file in the iso-codes package.
The ISO-3166 list includes all countries, regions ar area of specific geopolitical interest in the world. Be aware that this translation is far from being a trivial work and may very quickly turn into some deep and complicated political difficulties. The original English names are those used officially by the relevant countries to design themselves. Please make your best for staying as neutral and close to these names as possibles. Some countries Foreign Affairs (or equivalent) ministries keep lists of country names translations in their own languages. Please use them as a reference if you can.
If in doubt, please contact the iso-codes package maintainer : <iso-codes@packages.debian.org>.
If you have time (but possibly, AFTER other D-I related translations), you may also translate other translatable material in this package such as the ISO-639 files (language names) and ISO-4217 files (currencies names). Please note that this is a very tedious task which may turn to be very difficult (are you aware of the correct translation of more than 450 languages names in your own language?).
Getting files for iso-codesThe iso-codes package maintainer uses a CVS repository hosted on Alioth.
Direct CVS commit/checkout access may be requested to him: <iso-codes@packages.debian.org>. Please provide your Alioth account name.
The file to be translated is hosted in the iso_3166 directory in the package's source tree. If no translation for your language exists, copy iso_3166.pot to xx.po and translate it.
If you can't work with CVS:
Check whether an incomplete translation exists for your language: http://people.debian.org/~seppy/d-i/level2/files/xx/iso-codes_iso_3166_xx.po
If it doesn't exist, get the POT file at: http://people.debian.org/~seppy/d-i/level2/POT/iso-codes_iso_3166.pot
copy iso-codes_iso_3166.pot to xx.po or use the existing iso-codes_iso_3166_xx.po.
Sending/commiting files for iso-codesIf you commit your translations directly to CVS, don't forget to update the debian/changelog file accordingly. See other entries in this file for reference.
If, for some reason, you can't work with CVS, the translation files should be reported as a bug against the iso-codes package. Please see the Reporting bugs against Debian packages section of this document.
A core D-I package (kbd-chooser) uses keyboard names (and mapping files) from the console-data package. Thus, in order to get it completely translated, translators need to translate console-data debconf templates.
You must translate the keyboard layout names to real names. For this, please look at the en.po file (which you can get at http://people.debian.org/~seppy/d-i/level2/files/en/console-data_debian_po_en.po) as ths file includes English translations of the original keyboard map names. For instance de-latin1-nodeadkeys is translated to "German" there, so you should use the name for German in your own language as translation of de-latin1-nodeadkeys (in that specific case, the nodeadkeys part is not translated, as you may see, there are technical reasons for this : this is why using the English translation as a reference is highly recommended).
Getting files for console-dataThe console-data package maintainer uses a SVN repository hosted on Alioth.
Direct SVN commit/checkout access may be requested to him: <console-data@packages.debian.org>. Please provide your Alioth account name.
The file to be translated is hosted in debian/po in the package's source tree. If no translation for your language exists, copy templates.pot to xx.po and translate it.
If you can't work with SVN:
Check whether an incomplete translation exists for your language: http://people.debian.org/~seppy/d-i/level2/files/xx/console-data_debian_po_xx.po
If it doesn't exist, get the POT file at: http://people.debian.org/~seppy/d-i/level2/POT/console-data_debian_po_templates.pot
copy console-data_debian_po_templates.pot to xx.po or use the existing console-data_debian_po_xx.po.
Sending/commiting files for console-dataIf you commit your translations directly to SVN, don't forget to update the debian/changelog file accordingly. See other entries in this file for reference.
If, for some reason, you can't work with SVN, the translation file should be reported as a bug against the console-data package.
Please see the Reporting bugs against Debian packages section of this document.
The exim4 package installs the Exim Mail Transport Agent (MTA). It is installed by default on all newly installed Debian GNU/Linux systems as Exim has always been the default Debian MTA (even if other MTA may be used and installed later by the system administrator).
It is installed and configured from base-config which triggers some of its configuration steps and thus involves user input.
The translation of some exim4 user input screens may be tricky. More particularly, the screen giving the choice between all possible type of configurations is not easy to handle for translators : each individual choice contains a description of what this choice means : THIS MUST BE KEPT SHORTER than 72 characters, otherwise, the display will be cut on most screens.
Also try to keep the long description of this specific screen as short as possible and still be clear and avoid jargon. Remember that this screen will be shown on every installation, even default ones (which are very likely to be used by low skilled users).
Getting files for exim4This package is a regular Debian package. The package maintainer currently does no use any CVS or SVN repository.
This package's l10n material is in one single file:
debian/po/templates.pot : screen shown to users while the program runs.
Check whether an incomplete translation exists for your language: http://people.debian.org/~seppy/d-i/level2/files/xx/exim4-config_debian_po_xx.po
If it doesn't exist, get the POT file at: http://people.debian.org/~seppy/d-i/level2/POT/exim4-config_debian_po.pot
Sending files for exim4The translation file must be reported as a bug against the exim4 package. Mention that the file is the debconf translation.
Please see the Reporting bugs against Debian packages section of this document.
The level 3 of translations groups together the translation of steps which are not always been used during installation made with D-I. These steps are optional steps and do no occur on default installs.
All packages which interact with users during second stage optional steps are considered part of the level 3 of l10n for D-I.
This includes the following regular Debian packages:
popularity-contest
discover1 (debconf)
aptitude
pppconfig
xdebconfigurator
localization-config
console-common
dictionaries-common
pcmcia-cs
The popularity-contest (very often nicknamed as popcon) package is automatically installed on every Debian system as it is part of what is called the base system.
This package installs scripts for periodically sending to Debian Developers statistics about installed packages on the user's system. These statistics are used when building releases, for instances for getting informations about the most used architecture ports as well as the most used packages.
Of course, as the Debian Project is highly committed to the respect of user's privacy, this survey is disabled by default. So, when the package is installed, it prompts the user whether (s)he wants to activate this survey system.
Translators must be very careful with this specific translation : keep the prompt very clear as it is in English and KEEP IT SHORT.
Getting files for popularity-contestThe popularity-contest package maintainers team (which works close to D-I team) uses a CVS repository hosted on Alioth. CVS commit is currently managed by the D-I i18n coordinator as a delagated work from the popcon development team.
Check whether an incomplete translation exists for your language: http://people.debian.org/~seppy/d-i/level2/files/xx/popularity-contest_debian_po_xx.po
If it doesn't exist, get the POT file at: http://people.debian.org/~seppy/d-i/level2/POT/popularity-contest_debian_po.pot
copy popularity-contest_debian_po.pot to xx.po or use the existing popularity-contest_debian_po_xx.po.
Sending files for popularity-contestThe translation file must be reported as a bug against the popularity-contest package (do NOT use the popcon nickname!). Mention that the file is the debconf translation.
Please see the Reporting bugs against Debian packages section of this document.
The translation will most often be quickly committed by the D-I i18n coordinator with a short message back to you mentioning that the bug fix is pending.
The discover1 program is aimed at automatic recognition of hardware on Debian GNU/Linux systems. Originally developed by Progeny developers (several of which are very active Debian Developers), it is now maintained by the D-I team.
Discover1 will be replaced by the version 2 of the program in the future. However, this version is not yet used by D-I and is anyway not internationalised.
Discover1 is also to be configured during its installation if D-I expert mode is used. This is why the debconf translation is part of the level 3 of D-I translations.
Getting files for discover1 (debconf)This package is a regular Debian package. The package maintainer team (the D-I team) use a SVN repository. The D-I i18n coordinator handles commits for l10n material.
This package's l10n material for debconf is in one file (another file is part of level 4):
debian/po/templates.pot : configuration screens (debconf)
Check whether an incomplete translation exists for your language: http://people.debian.org/~seppy/d-i/level3/files/xx/discover1_debian_po_xx.po
If it doesn't exist, get the POT file at: http://people.debian.org/~seppy/d-i/level3/POT/discover1_debian_po.pot
Sending files for discover1 (debconf)The translation files must be reported as bugs against the discover1 package (BEWARE of the "1"!). Please mention that the file is the debconf translation.
Please see the Reporting bugs against Debian packages section of this document.
The translation will most often be quickly committed by the D-I i18n coordinator with a short message back to you mentioning that the bug fix is pending.
The aptitude program is an combination of interactive and non-interactive tools for installing Debian packages. For long-time users of Debian, it may be seen as the replacement for both dselect and apt.
It is used from base-config when packages are installed. It is also used interactively when the user chooses the option for installing individual packages of his/her choice.
The program uses a text-based menu system when used interactively and includes a lot of output messages when it is run non-interactively.
Aptitude's full translation is a huge work because there are hundreds of strings in the POT file. Moreover, this requires some good knowledge of several Debian package managements concepts. It is recommended that this translation is handled by an experienced Debian system administrator.
Without any doubt, aptitude's translation is among the most difficult translations involved in D-I translation. It has an impact far outside Debian Installer because aptitude is likely to be used all along the life of a Debian system.
If you are not confident in your ability to do this translation, just jump over it until you find some other translator. D-I translators working with a translation team should ask for help to this team. Also try asking to your local Debian users groups.
Aptitude includes a small help file, which may be translated as well. However, this translation does not use GNU gettext, so the translation is quite tricky. See the help* files in aptitude's source tree.
Aptitude's documentation may also be translated. See the doc/ directory in the package's source tree.
Getting files for aptitudeThis package is a regular Debian package. The package maintainer uses a SVN repository for the program development (the Debian package is handled in a separate SVN repository). The maintainer delegated the handling of l10n to the D-I i18n coordinator.
This package's l10n material followed by D-I statistics tools is in one single file:
po/aptitude.pot : all screens translations
Check whether an incomplete translation exists for your language: http://people.debian.org/~seppy/d-i/level3/files/xx/aptitude_po_xx.po
If it doesn't exist, get the POT file at: http://people.debian.org/~seppy/d-i/level3/POT/aptitude_po.pot
Be aware that aptitude is still under heavy development, so upstream strings are very likely to change or be added. So, be prepared to closely follow these changes. But, in any case, even partial translation will help the users of a language.
Sending files for aptitudeThe translation files must be reported as bugs against the aptitude package. Please see the Reporting bugs against Debian packages section of this document.
The translation will most often be quickly committed by the D-I i18n coordinator with a short message back to you mentioning that the bug fix is pending.
The pppconfig package is dedicated at configuring PPP systems. It helps the users in configuring one or several PPP peers as well as PPP interface details.
It is installed and configured from base-config when run at medium priority (thus, for expert installs).
The program uses a dialog-like interface for building a set of menus which the users navigate in.
The paragraph formatting is hard-coded with "\n" which represents carriage returns. You must be careful about keeping the lines below 72 characters even if this ends in more or less "\n" then the original English file. THIS DOES NOT HARM even if your PO editing tools warns you about this.
Getting files for pppconfigThis package is a regular Debian package. The package maintainer currently does no use any CVS or SVN repository.
This package's l10n material is in one single file:
po/pppconfig.pot : all screens translations
Check whether an incomplete translation exists for your language: http://people.debian.org/~seppy/d-i/level3/files/xx/pppconfig_po_xx.po
If it doesn't exist, get the POT file at: http://people.debian.org/~seppy/d-i/level3/POT/pppconfig_po.pot
Sending files for pppconfigThe translation file must be reported as a bug against the pppconfig package. Please see the Reporting bugs against Debian packages section of this document.
The xdebconfigurator package is a tool aimed at automatic configuration of the X-Window server component.
It is called from base-config when the installed system includes a X Window System server software.
Getting files for xdebconfiguratorThe xdebconfigurator package is maintained by the Debian-Edu project maintainers. Direct CVS commit/checkout access to Debian-Edu may be requested to the project administrators. Please provide your Alioth account name.
The file to be translated is hosted in debian/po in the package's source tree. If no translation for your language exists, copy templates.pot to xx.po and translate it.
The translatable part only includes the base-config menu entry. Remember that, being a menu entry, its translation must be kept short: below 70 columns
If you can't work with CVS:
Check whether an incomplete translation exists for your language: http://people.debian.org/~seppy/d-i/level3/files/xx/xdebconfigurator_debian_po_xx.po
If it doesn't exist, get the POT file at: http://people.debian.org/~seppy/d-i/level3/POT/xdebconfigurator_debian_po_templates.pot
copy xdebconfigurator_debian_po_templates.pot to xx.po or use the existing xdebconfigurator_debian_po_xx.po.
Sending/commiting files for xdebconfiguratorIf you commit your translations directly to CVS, don't forget to update the debian/changelog file accordingly. See other entries in this file for reference.
If, for some reason, you can't work with SVN, the translation file should be reported as a bug against the xdebconfigurator package.
Please see the Reporting bugs against Debian packages section of this document.
The localization-config package is a tool aimed at automatic configuration of locales-related settings in several key packages.
It is called from base-config except in the case the installed system has no localization at all.
Getting files for localization-configThe localization-config package is maintained by the Debian-Edu project maintainers. Direct CVS commit/checkout access to Debian-Edu may be requested to the project administrators. Please provide your Alioth account name.
The file to be translated is hosted in debian/po in the package's source tree. If no translation for your language exists, copy templates.pot to xx.po and translate it.
The translatable part only includes the base-config menu entry. Remember that, being a menu entry, its translation must be kept short: below 70 columns
If you can't work with CVS:
Check whether an incomplete translation exists for your language: http://people.debian.org/~seppy/d-i/level3/files/xx/localization-config_debian_po_xx.po
If it doesn't exist, get the POT file at: http://people.debian.org/~seppy/d-i/level3/POT/localization-config_debian_po_templates.pot
copy localization-config_debian_po_templates.pot to xx.po or use the existing localization-config_debian_po_xx.po.
Sending/commiting files for localization-configIf you commit your translations directly to CVS, don't forget to update the debian/changelog file accordingly. See other entries in this file for reference.
If, for some reason, you can't work with SVN, the translation file should be reported as a bug against the localization-config package.
Please see the Reporting bugs against Debian packages section of this document.
Contribute to your language/locale support in localization-configAs localization-config indeed pre-configures several packages for locales-related settings, you may help its maintainer to adjust settings for your own language. This often starts by providing the most common xfree86 settings for keyboard for your locale and all locales supported by your language. For this, you should contact the package maintainer(s) at localization-config@packages.debian.org
The console-common package includes all tools for handling the console (input and output).
It is installed and configured as part of the Debian base system. Its configuration process involves some user input and may be shown to users during a base system install, in some occasions (but not always).
Getting files for console-commonThe console-common package maintainer uses a SVN repository hosted on Alioth. Direct SVN commit/checkout access may be requested to him: <console-common@packages.debian.org>. Please provide your Alioth account name.
The file to be translated is hosted in debian/po in the package's source tree. If no translation for your language exists, copy templates.pot to xx.po and translate it.
If you can't work with SVN:
Check whether an incomplete translation exists for your language: http://people.debian.org/~seppy/d-i/level3/files/xx/console-common_debian_po_xx.po
If it doesn't exist, get the POT file at: http://people.debian.org/~seppy/d-i/level3/POT/console-common_debian_po_templates.pot
copy console-common_debian_po_templates.pot to xx.po or use the existing console-common_debian_po_xx.po.
Sending/commiting files for console-commonIf you commit your translations directly to SVN, don't forget to update the debian/changelog file accordingly. See other entries in this file for reference.
If, for some reason, you can't work with SVN, the translation file should be reported as a bug against the console-common package.
Please see the Reporting bugs against Debian packages section of this document.
The dictionaries-common package includes all common tools for using word dictionaries in Debian.
It is installed and configured as part of the Debian base system. Its configuration process inputs the user for choosing a word dictionary when the installation is run at medium priority (using the expert mode of install...or when some problem occurred earlier in the installation process).
Getting files for dictionaries-commonThis package is a regular Debian package. The package maintainer currently does no use any CVS or SVN repository.
This package's l10n material is in one single file:
debian/po/templates.pot : configuration screens (debconf)
Check whether an incomplete translation exists for your language: http://people.debian.org/~seppy/d-i/level3/files/xx/dictionaries-common_debian_po_xx.po
If it doesn't exist, get the POT file at: http://people.debian.org/~seppy/d-i/level3/POT/dictionaries-common_debian_po.pot
Sending files for dictionaries-commonThe translation files must be reported as a bug against the dictionaries-common package. Please see the Reporting bugs against Debian packages section of this document.
The pcmcia-cs package includes all common tools for using PCMCIA devices on a Debian system.
It is installed and configured as part of the Debian base system when the system used a PCMCIA device while being installed. Its configuration process inputs the user about stopping the PCMCIA Card Servivces when upgrading. This configuration screen is then shown on some Debian installs.
Getting files for pcmcia-csThis package is a regular Debian package. The package maintainer currently does no use any CVS or SVN repository.
This package's l10n material is in one single file:
debian/po/templates.pot : configuration screens (debconf)
Check whether an incomplete translation exists for your language: http://people.debian.org/~seppy/d-i/level3/files/xx/pcmcia-cs_debian_po_xx.po
If it doesn't exist, get the POT file at: http://people.debian.org/~seppy/d-i/level3/POT/pcmcia-cs_debian_po.pot
Sending files for pcmcia-csThe translation files must be reported as a bug against the pcmcia-cs package. Please see the Reporting bugs against Debian packages section of this document.
The level 4 of translations groups together the translations of programs which may output messages to the screen but DO NOT input users.
All internationalised packages which output messages to the screen during first and second stage are considered part of the level 4 of l10n for D-I.
This includes the following regular Debian packages:
debconf (program)
discover1 (program)
dpkg
apt
shadow (program)
Dpkg, apt and shadow programs are very often used during the whole life of a Debian system, so having them translated, though very tedious, is a must-have for a good localised system.
Discover1 outputs messages to the console during D-I processes just like debconf does.
The debconf program is the softare which is used for user interaction during Debian packages configuration step. All Debian packages should use debconf when they need user input for installation-time configuration.
Debconf may output information to the screen : this is why the program translation is included in D-I fourth level of translation.
Getting files for debconf (program)This package is a regular Debian package. The package maintainer (the D-I team) use a SVN repository. The D-I i18n coordinator handles commits for l10n material.
This package's l10n material for program translation is in one file:
po/debconf.pot : program output
Check whether an incomplete translation exists for your language: http://people.debian.org/~seppy/d-i/level4/files/xx/debconf_po_xx.po
If it doesn't exist, get the POT file at: http://people.debian.org/~seppy/d-i/level4/POT/debconf_po.pot
Sending files for debconf (program)The translation files must be reported as bugs against the debconf package. Please mention that the file is the program translation. Please see the Reporting bugs against Debian packages section of this document.
The translation will most often be quickly committed by the D-I i18n coordinator with a short message back to you mentioning that the bug fix is pending.
The discover1 program is aimed at automatic recognition of hardware on Debian GNU/Linux systems. Originally developed by Progeny developers (several of which are very active Debian Developers), it is now maintained by the D-I team.
Discover1 will be replaced by the version 2 of the program in the future. However, this version is not yet used by D-I and is anyway not internationalised.
Discover1 may output information to the screen : this is why the program translation is included in D-I fourth level of translation. The program configuration screens (debconf) are part of the third level you should already have completed.
Getting files for discover1 (program)This package is a regular Debian package. The package maintainer team (the D-I team) use a SVN repository. The D-I i18n coordinator handles commits for l10n material.
This package's l10n material for program translation is in one file:
po/discover.pot : program output
Check whether an incomplete translation exists for your language: http://people.debian.org/~seppy/d-i/level4/files/xx/discover1_po_xx.po
If it doesn't exist, get the POT file at: http://people.debian.org/~seppy/d-i/level4/POT/discover1_po.pot
Sending files for discover1 (program)The translation files must be reported as bugs against the discover1 package (BEWARE of the "1"!). Please mention that the file is the program translation. Please see the Reporting bugs against Debian packages section of this document.
The translation will most often be quickly committed by the D-I i18n coordinator with a short message back to you mentioning that the bug fix is pending.
The dpkg program is a low level program aimed at installing and removing Debian packages.
Including it in D-I level 4 of translation is an extension of the scope of D-I l10n process. Dpkg does not ouput very often during a base system install, but is very likely to be used further, either directly invoked by the system administrator or from another program such as aptitude, apt, or the good old dselect.
Dpkg full translation is a huge work because there are hundreds of strings in the POT file. Most of these strings are very short strings and most of them are hard-formatted as all of them are outputted during the use of a command-line program.
Without any doubt, dpkg translation requires a good knowledge of the Debian package management system as well as some good experience of command-line programs translation.
The developers have put comments targeted at translators for some strings. Please read them carefully.
Getting files for dpkgThis package is a regular Debian package. The package maintainer team use a CVS repository, with a quite complicated branching system. Using your own CVS checkout copy is discouraged unless you are very aware of dpkg development process.
This package's l10n material followed by D-I statistics tools is in one single file:
po/dpkg.pot : all translations
Check whether an incomplete translation exists for your language: http://people.debian.org/~seppy/d-i/level4/files/xx/dpkg_po_xx.po
If it doesn't exist, get the POT file at: http://people.debian.org/~seppy/d-i/level4/POT/dpkg_po.pot
Sending files for dpkgThe translation file must be reported as a bugs against the dpkg package. Please see the Reporting bugs against Debian packages section of this document.
The translation will most often be committed quite quickly by one of the dpkgpackage maintainers. However, having it included in a release may take some time because dpkg follows a very strict development process, being a critical tool in a Debian system.
The apt program is aimed at installing and removing Debian packages from packages sources such as Debian HTTP/FTP mirrors, Debian CD's, third party CD's or repositories, or local files.
Including it in D-I level 4 of translation is an extension of the scope of D-I l10n process. Apt does not ouput very often during a base system install, but is very likely to be used further.
Apt full translation is a huge work because there are hundreds of strings in the POT file. Most of these strings are short strings and most of them are hard-formatted as all of them are outputted during the use of a command-line program.
Similarly to dpkg, apt translation requires a good knowledge of the Debian package management system as well as some good experience of command-line programs translation.
The developers have put comments targeted at translators for some strings. Please read them carefully. Some of them are VERY important.
Getting files for aptThis package is a regular Debian package. The package maintainer team use a CVS repository but commits are handled by the development team. You are thus encouraged to use the files grabbed by the D-I i18n coordinator.
This package's l10n material followed by D-I statistics tools is in one single file:
po/apt.pot : all translations
Check whether an incomplete translation exists for your language: http://people.debian.org/~seppy/d-i/level4/files/xx/apt_po_xx.po
If it doesn't exist, get the POT file at: http://people.debian.org/~seppy/d-i/level4/POT/apt_po.pot
Sending files for aptThe translation file must be reported as a bug against the apt package. Please see the Reporting bugs against Debian packages section of this document.
The translation will most often be committed quite quickly by one of the apt package maintainers. Similarly to dpkg, the development process of APT is very strict, so the inclusion of l10n material may not occur very often. Be patient..:-)
The shadow package has already been mentioned previously in this document as part of the level 2 of translation.
The utilities installed by this package have been internationalised and, as they are core utilities for a Debian system, translating them is likely to be made for having a good localised system.
This translation is, like apt and dpkg translations, a program translation : programs (like passwd, chpw, chsh, etc.) output, error and help messages. Such translation is quite tedious and long term work and need some carefulness (respect line breaks, variable substitutions...).
Getting files for shadow (level 4)This package is a regular Debian package. The package maintainer currently does no use any CVS or SVN repository. However, he delegated the handling of the package's localisation to the D-I i18n coordinator.
This package's l10n material for the fourth level is in one single file:
po/shadow.pot : output/help/error messages from the programs
You may also look at the man/ directory as manual pages may also be translated though this is out of the scope of this document.
Check whether an incomplete translation exists for your language: http://people.debian.org/~seppy/d-i/level4/files/xx/shadow_po_xx.po
If it doesn't exist, get the POT file at: http://people.debian.org/~seppy/d-i/level4/POT/shadow_po.pot
Sending files for shadowThe translation file must be reported as a bug against the shadow package. Mention that the file is the programs translation.
Please see the Reporting bugs against Debian packages section of this document.
Most translations are included in specific releases of the package, built by the D-I i18n coordinator (these are called l10n NMUs).
A full translation of all packages which are part of the Debian base system may be called the level 5 of translation.
This document will not maintain a full list of these packages and the relevant material (which may be programs translations as well as debconf -Debian configuration system- translations).
The Debian i18n team in in the process of building a centralised system for gathering and handling l10n material for Debian packages. The files will be grouped there according to the levels defined here.
Below is a list of packages with debconf templates that should be translated first (as of this writing):
debconf man-db console-common netbase ifupdown console-data adduser setserial bsdmainutils lilo
A full translation of all packages which are part of the Debian standard system may be called the level 6 of translation.
similarly to level 5, there is currently no list of the concerned packages (these are all Debian package of Standard priority). These package are numerous and most of them already have complete or partial upstream translation when it comes at programs translations.
First translating the debconf screens (which are Debian specific) is recommended. Please get in touch with the Debian i18n team for details about this process.
Below is a list of packages with debconf templates that should be translated first (as of this writing):
ssh wamerican openssl locales ibritish flex dictionaries-common iamerican
Reaching and completing this step would mean that you have reached the l10n Holy Grail : fully translate the Debian GNU/Linux distribution in your language and dominate the world...:-)
This includes translations for ALL Debian packages, programs and debconf. Of course, no translation team currently has achieved this and no will in a near future, except in this document writer's dreams.
Below is a list of packages with debconf templates that should be translated first (as of this writing):
apache xfree86 cupsys ntp fontconfig samba mozilla libpaper pango1.0 cvs xscreensaver tetex-bin screen powermgmt-base mysql-dfsg gdm apt-listchanges discover libnet-perl openslp
Working with the Debian Installer SVN repository first requires you to get an account on the Alioth project server. Alioth is a project for helping at the development of free software, related to Debian or not. Several D-I-related projects are hosted on this server.
Getting an account on Alioth is easy : just go to http://alioth.debian.org and follow the relevant links.
Non-official Debian Developers are welcomed. They will get xxxx-guest account names but have no other restriction of use.
As soon as your account has been confirmed by the Alioth project administrators, please contact the D-I i18n coordinator (you should have already do so before this) and give him/her your account name.
The D-I i18n coordinator will then validate your account for commit access to the core D-I repository as well as the base-config and tasksel Subversion repositories (they are also managed on Alioth, but as separate projects because they aren't special Installer packages). For details about base-config and tasksel, see level 2 sections of this document.
There is no commit restriction : translators may contribute to other parts of D-I if they feel they can bring their experience and skills to the project. Of course, never forget that this is team work and follow the general work methods of the team.
You need to install SVN (Subversion) on your system. For Debian sid or sarge users, just do apt-get install subversion. Users of Debian woody release may use backports from www.backports.org. Please add this entry to your /etc/apt/sources.list file:
deb http://www.backports.org/debian stable subversion |
Or use Adam Conrad's backports:
deb http://people.debian.org/~adconrad woody subversion |
Please be aware that these backports are not officially supported by the Debian Project. Though their maintainers are well-known and respected Debian Developers, they're the only people who can guarantee these packages are well maintained and secured.
This section applies to translators who directly commit their translations into packages SVN or CVS repositories.
It DOES NOT apply to level 1 translations, that is the Debian Installer core packages translations. For these translations, no changelog updates are needed.
Each change in Debian packages must be documented in the debian/changelog file.
Below is an excerpt of the changelog file for base-config:
base-config (2.39) UNRELEASED; urgency=low * Updated translations: - Croatian by Krunoslav Gernhard -- Christian Perrier <bubulle@debian.org> Sat, 24 Jul 2004 08:14:13 +0200 base-config (2.38) unstable; urgency=high .../... |
The above means several things:
the last released version of the package is 2.38. The SVN repository currently contains the future unpublished 2.39 release
the only change which occured since 2.38 is the update of the Croatian translation (made by Krunoslav Gernhard)
the commiter of this change was Christian Perrier
Different Debian packages may use slightly different methods and styles for changelog maintenance. When working with SVN/CVS repositories, always remember using the UNRELEASED entries for new unpublished changes (add one entry if none exists).
You are encourage to use the debchange utility from the devscripts Debian package.
This section applies to translators who need to send their completed translations back to the package maintainers, especially for second or third level packages for which no direct Subversion or CVS commit is possible (either because the translator cannot use SVN or CVS or because the package maintainer(s) do not encourage wide commit access).
Reporting a bug to a Debian package is just sending a specially written mail to <submit@bugs.debian.org>.
The mail should include, at the top, a few special fields:
Package: <package name> Version: <version of the package> Severity: <bug severity> Tags: <bug tags> |
Details about bug severities, tags and other information regarding bug reports may be found at http://bugs.debian.org.
Translators are encouraged to use the Debian reportbug utility which will handle all these formatting details for them.
An example command line follows. It will report a bug against the shadow package with the Klingon (code: tlh) translation:
reportbug --attach=tlh.po --offline -s "shadow: [INTL:tlh] Klingon debconf templates translation" --severity=wishlist --tag=patch --tag=l10n --no-config-files shadow |
The bug severity must be wishlist.
The bug tags must always include l10n and patch. The d-i tag must be used for core D-I translations as well as base-config and tasksel.
The subject of the bug report should begin by "[INTL:xx]". When the package has several translatable material, the subject should mention which translation is sent. Please file a bug for each translation when you want to send several file. Do not open a bug for sending several files at the same time, as they may require different handling by maintainers.
The reportbug utility must be configured for using correct originating addresse and real name. See man reportbug for details. An example ~/.reportbugrc is given below. Do not use it directly but adapt it to your own needs!
# reportbug preferences file # Version of reportbug this preferences file was written by reportbug_version "1.99.51" # default operating mode: one of: novice, standard, advanced, expert mode advanced # default user interface ui text # offline setting - comment out to be online #offline # name and email setting (if non-default) realname "Christian Perrier" email "bubulle@debian.org" # You can add other settings after this line. See # /etc/reportbug.conf for a full listing of options. |
Translators who do not use a Debian system can still report bugs. You just need to send a mail to <submit@bugs.debian.org> and include the following text at the beginning of your mail:
Package: <package name> Version: <version of the package> Severity: <bug severity> Tags: <bug tags> |
Don't forget to attach the translation file to the mail! If you're not sure about the correct handling of encodings by your mail tool, you'd better compress the file first (using gzip or any other compress utility).
This section is not intended to be a tutorial for gettext-related stuff. Please look for documentation of PO editing software such as KBabel, gtranslator, PoEdit, EMacs PO-mode, etc.
Translators should use a dedicated PO-editing tool until they become very familiar with translation work.
Using normal editors such as all vi flavours is also possible, but these will not prevent common errors, neither will they offer useful features in a translation work.
Don't forget to properly fill up the PO files header, especially the Last-Translator field.
Fill the Project-Id-Version field with the package name : this will help you in translation maintenance.
If a translation team exists for your language, WORK WITH THEM. First check the debian-l10n-xxxxx mailing list where xxxxx is your language name in english (e.g. debian-l10n-polish, debian-l10n-portuguese...).
The list of all available translation teams is available at http://lists.debian.org/i18n.html If in doubt, contact <debian-i18n@lists.debian.org> for assistance.
For general translation issues or for finding other translators for your language, you may also use the debian-i18n mailing list (don't post translations there, however).
Some strings are identical in two or more packages. Please try to translate them consistently.
If you want to update a translation, please always contact the previous translator in order to prevent duplication of work. His mail address can be found in the PO file.
When you have finished your translation, always re-read your file at least once to correct all meaning-, spelling-, grammar-, typo-, etc- mistakes (maybe your po-editor does include a spellchecker or a translation helper like acheck). Run the following command before commiting or sending your translation:
msgfmt --check --statistics <YOUR LANGUAGE CODE>.po |
(msgfmt is included in the gettext Debian package)
You may also use the Debian aspell package for testing the spelling in your translation. This package is designed for testing the spelling in PO files as it will only test the spelling in their translated part. It relies on the ispell program : this will then only work with languages for which an ispell dictionary exists.
You can also run podebconf-display-po (from po-debconf >= 0.8.3) on your file when this is a debconf translation:
podebconf-display-po -fdialog <YOUR LANGUAGE CODE>.po |
This will give you a rough idea on how your translation will look like, particularly the screens length (use this utility on a usual 80x25 terminal). But as cdebconf and debconf displays slightly differ, and as some scripts do heavy use of text substitution, do not fully rely on this program. Running debian-installer is the only solution to test translations.
Using podebconf-displaypo is mandatory for testing debconf translations when they are mentioned to be tricky (such as shadow, popularity-contest and exim4 translations).
In several D-I packages, you will find embedded variable names such as: "You are currently modifying ${PARTITION} properties". Please DO NOT translate the variable names and be very careful abou tkeeping braces and "dollar" signs. For instance, the French translation of the above is: "Vous modifiez actuellement les propriétés de ${PARTITION}".
When translating programs such as dpkg, apt or shadow, be careful about "%s" variables : your translation needs to have the same number of such variables than the original English string.
Modern PO editing tools will warn you about such mistakes and msgfmt (see Testing your translations) will also report errors.
If you need further assistance, feel free to ask for help on <debian-boot@lists.debian.org> (for debian-installer related stuff) or debian-i18n (for l10n related questions) Debian mailing lists.
The D-I team maintains web pages giving the statistics of translations for each language, level by level.
These pages are maintained or co-maintained by the i18n coordination team.
Translators should check these pages regularly in order to follow the possible changes to upstream packages and then update their work if needed.
The address for the top page of translation statistics is http://people.debian.org/~seppy/d-i/translation-status.html
The statistics page will give statistics about committed translations, unstable and testing translations:
committed translation are the bleeding edge statistics : they represent the status of translations in all repositories
unstable are translation statistics for Debian packages which have been released by their maintainers and are currently in the unstable branch of the distribution
testing are translation statistics for Debian packages which have been released by their maintainers and are currently in the testing branch of the distribution
Explaining the differences between testing and unstable is out of scope of this document. Please refer to more general documents about Debian development for these details.
As testing is the upcoming next stable Debian release, the goal is of course having the best statistics for this branch of the distribution.
The Debian Installer is managed by a team of developers. The release of the installer involves the releases of all packages which are part of it.
Debian Installer releases are managed by the D-I release manager. Periodically, a release plan is built in order to publish a stable release of the installer from the source of packages which are in the archive.
Outside release processes, the D-I packages are work in progress which means that the string they contain are likely to change.
As a consequence, translators ay choose to halt their work during high develpment activity periods, and thus get their translation statistics slowly decreasing as long as packages are changed. Another method for working is by very regularly surveying translation statistics pages and update files as soon as they get outdated material.
Both methods are OK for the D-I development team as long as languages reach back 100% translation for releases. I18n coordinators tend to favour the constant update method of working because the first method never give them the guarantee that translators for a given language are still active.
All releases plans include a string freeze period. This time period is quite short and usually lasts a few days (4-6) possibly with a week-end. A string freeze means that D-I package maintainers should not change the strings in their upstream files. Thus, a string freeze guarantee translators that they can work afely without fearing to see their work dropped away because of a last minute change.
Be aware that string freezes always have exceptions. In rare occasions, when important bugs are discovered which require updates to English strings, they are changed even during the string freeze. However, such changes are always made with the agreement of the release manager and the i18n coordinator. In that case, translators are privately warned about the change. So, during string freezes, please carefully check your mailboxes, or watch the status pages regularly.
String freeze are only relevant for level 1 translations. Level 2 and above packages may get updates while D-I packages are frozen. In most cases, however, their maintainers are aware of the D-I release process and they make their best for not doing last minute changes.
The Debian Installer packages use a debconf-managed interface for handling user interaction screens and all display.
The debconfized packages use po-debconf for handling localisation which means that templates translations are hosted in directories named "debian/po" in each package source code tree.
These directories contain xx.po files where xx is the ISO-639 code of handled languages (xx may sometimes be xx_YY when some languages such as Portuguese or Chinese have different variants). A section about ISO-639 codes may be found in this document.
They also contain a file named templates.pot which contains up-to-date strings. This file is generated by the debconf-updatepo utility when debconf templates are modified or written.
D-I developers are strongly encouraged to read the po-debconf(7) man page and must have a good knowledge of po-debconf mechanisms. Please ask for advice in the <debian-boot@lists.debian.org> mailing list when in doubt.
Strings which need translation must be prepended by a leading underscore (_) character in the templates files.
Templates files MUST be named <package>.templates. Developer SHOULD NOT use files named debian/templates though debhelper scripts properly handle such files. This requirement has been added because the translators work on a general file which groups together all templates from all D-I packages. This general file mentions, for each string, the originating file name. If this file name contains the package name, the translator will then know which package the string (s)he translates belongs to.
Please respect the Debconf Templates Style Guide (DTSG) and the general style for writing templates for D-I (a special section of the DTSG mentions D-I templates). And, and any case, BEFORE commiting new templates or templates changes, please have these templates reviewed by other D-I developers.
If you commit templates with incorrect English or templates with a different writing style than the general D-I writing style, several translators will start working on these templates and will be angry when they will be changed again after being reviewed.
ANY templates files in the packages/ directory of the D-I source tree will enter the translators work files a few hours after it has been committed. So, if you work on a new prospective package which does not need translations yet, please do not put it immediately in the packages/ directory in the SVN tree.
Up to D-I RC1, translators worked by updating all individual packages PO files one by one.
However, this method showed some limitations and made the translators work quite tedious in maintenance tasks.
For this reason, a few weeks after RC1, the translators team changed their work method : all PO files are now merged into one single file and translators update this file. These single PO files are placed into packages/po into the D-I main directory.
A script is run regularly by the D-I i18n coordinator. This script does the following tasks:
merge all templates.pot file into packages/po/template.pot
update packages/po/*.po files according to this template.pot file
update all individual packages debian/po/*.po files with the translations from these single packages/po/*.po files
As one may see, changes made directly to debian/po/*.po files are lost in this process. So, if for some reason, maintainers need to update these files (there is normally NO reason for this), they should consider modifying the source files in packages/po. But, in any case, they should coordinate their action with the i18n coordinator.
When maintainers modify the strings in the templates files, the translations will often need updates.
Maintainers do not need to run the debconf-updatepo utility which updates the debian/po/templates.pot file as well as all debian/po/*.po files. Such updates will be handled by the i18n coordinator synchronisation script.
Modifications to templates will change the status of the translations for the modified string : in all PO files, this string will be marked as fuzzy. This means that though the former translation is kept, it is known to be outdated. Fuzzy translations are of course not used : a template which contains at least one fuzzy string will be completely displayed in English. As a consequence, don't worry about outdated translations, this is the translators job.
This fuzzy string will be marked fuzzy in the general PO files when the i18n coordinator merging script will be run.
When modifications make the new string too different from the original string, the string translations are not kept and thus the string becomes untranslated.
Trivial modifications are all modifications which have no impact on the translations: these will be most often spelling errors or typos in original templates files.
If the update is made without care, correcting a typo in one template will result in one more fuzzy string in all translations.
In such case, a special unfuzzy process may be run on PO files.
As an example, let's assume that an original template contained the following wrong English sentence:
These changes will be applied to all partitons. |
If the package maintainer simply changes partitons to the correct partitions word, all translations of the paragraph containing this sentence will be fuzzied.
In this case, preventive unfuzzyfication may be done:
cd <di_dir>/packages/po/ svn update mkdir NEW for i in *po ; do cat $i | sed 's/partitons/partitions/g' >NEW/$i mv NEW/$i $i done svn commit -m"Typo correction in <mypackage>" *.po rmdir NEW |
This is a dangerous action. The replacement string in the sed command above must be carefully chosen so that it matches only the occurrence you have changed.
If in doubt, please contact the i18n coordinator before commiting the error correction to the original templates file.
During the release process of the Debian Installer, the D-I project manager will call for string freezes. A string freeze theoretically forbids any change to templates files in D-I packages. It is meant for translators to complete their work without having it outdated by maintainers changes.
Of course, some urgent or critical changes may be needed even during a string freeze. If, as a maintainer, you need to commit such changes, please first warn the D-I i18n coordinator and possibly get approval from the D-I release manager.
The i18n coordinator will warn translators about the unplanned change and will request them for a special update.
Always remember that D-I translation is the work of more than 40 teams and thus each change adds more time for all of them to get synchronised again.
When releasing their packages, maintainers should use the scripts/l10n-utilities/l10n-release script. This script will do a last synchronisation of the translations for the package with the translators work from the general PO files directory.
The script will also output the changelog entries which should be added to the package's changelog file, for translations which got modifications since the last release of the package. This will work properly ONLY if the last changelog entry includes "UNRELEASED".
After running the script, please add these lines to the package's changelog file and process with other release tasks (which are out of scope for this document).
The files which are really used for building D-I packages are hosted in the SVN (Subversion) repository used for the development of D-I packages.
These files need to be synchronised with the translations from the packages/po directory.
Starting from the RC1 release of the Debian Installer, translators do not work anymore on the package's debian/po/*.po files. All translations are merged into files which are committed in packages/po.
When D-I packages templates are changed, the individual debian/po/templates.pot file will change. These changes have to be moved to files in packages/po.
When translations are updated in the packages/po directory, these changes have to be moved back into individual debian/po/*.po files for each package. This does not need to be done at each translation update but must be done BEFORE building packages.
The task of keeping track of the correct synchronisation is one of the most important tasks of the D-I i18n coordinator. It is handled by the scripts/l10n-utilities/l10n-sync script.
Generate template.pot from the D-I repository by merging together all debian/po/templates.pot files. The scripts/l10n-utilities/l10n-sync may be used for this. First check that no PO files stay in packages/po when running it for the first time.
This action should only happen once for each language.
bring this language to 100% translation according to the old method (this step is not mandatory but will help in tracking down fuzzies)
stop commiting xx.po files for this language
build the general xx.po file in packages/po by using the scripts/l10n-utilities/gettex-helper script
fill in the PO file header properly. Do not forget the Plural-Forms header. Ask i18n coordinator for help
track fuzzy strings which are often caused by identical strings with different translations in different D-I packages. For these strings, keep only one translation
commit back the new xx.po file to packages/po. This will automatically trigger individual PO files update when packages will be built (see changes to packages build process)
On a regular basis, the l10n-sync script will run under the account of the i18n coordinator on people.debian.org and will update the general template.pot and all PO files from individual templates.pot files from all D-I packages.
The time period during which this process occurs is called l10n synchronisation window. Such window occurs four times a day (at H+27 at 1, 7, 13 and 19 UTC) during normal D-I development process and hourly (at H+27) during string freezes.
While running, this script will also run debconf-updatepo for each D-I package and will commit back the regenerated templates.pot files (package maintainers often forget running debconf-udpatepo when commiting changes to English templates).
The general process is:
for each D-I package:
synchronize the local copy with the D-I SVN
run debconf-updatepo
commit back the files in debian/po
Update the general template.pot file:
merge all templates.pot files to packages/po/template.pot
commit this file
For each PO file:
synchronize with D-I SVN
update with packages/po/template.pot
commit back the changed file to D-I SVN
for each D-I package:
synchronize the local copy with the D-I SVN (in case some update occurred in the meantime)
update debian/po/*.po files with files in packages/po/
commit back the changes to D-I SVN
A few "conflicts windows" exist :
during 1) if changes are made by an upstream maintainer to templates file and (s)he runs debconf-updatepo then commits the changes between 1a and 1c
between 3a and 3c if a translator commits an update to his/her translation before the l10n synchronisation script commits the update
between 4a and 4c if an upstream maintainer updates his templates file and runs debconf-updatepo before the l10n synchronisation script commits back the updated files
For these reasons, maintainers should not use debconf-updatepo and commit back the updated files during the D-I l10n synchronisation windows. For the same reasons, translators should avoid commiting updates during the D-I l10n synchronisation windows.
The conflict windows have been minimised as much as possible in the l10n-sync script. This explains the high number of commit actions made by this script (as soon as a file is modified, it is committed to SVN).
The l10n synchronisation script is kept in D-I repository in the scripts/l10n-utilities directory and is named l10n-sync.
This is a shell script (which may contain some bashisms until a skilled shell programmer cleans it out).
A few environment variables affect the script's behaviour:
defining DEBUG=Y will trigger more output by the script. Otherwise, the script reports about its actions but commands output (such as svn, debconf-updatepo, msgmerge) will be redirected to /dev/null.
the ONLINE variable is very important:
defining ONLINE=Y will trigger "svn update" commands before working on files
defining ONLINE="YES_I_KNOW_WHAT_I_DO" will allow the script to COMMIT files back to the D-I repository Of course, this is quite risky and must be done only on controlled environments because this will update a lot of files in D-I repository
other values will make the script work only locally
the svn variable defines the command for calling the svn utility It is used in the script just in case some special behaviour is needed
the debconfupdatepo utility serves the same purpose the the debconf-updatepo command. It allows using a specially crafted debconf-updatepo command, for just updating templates.pot files and save a lot of time
The script needs the location of the local copy of the D-I repository to be passed as an argument. It makes some simple checks about the copy.
When using this script with commits, the D-I copy must be as clean as possible. It should not be used for development tasks.
Prospective languages are not touched: Is a language listed in packages/po/PROSPECTIVE, the translations are not spreaded into the packages. These languages are not available in the installer.
Since September 2004, the number of languages supported by debian-installer for sarge is frozen. All languages which started translating after September 2004 are called "prospective languages". These languages won't make it into sarge.
Another reason for keeping a language out of the installer is when the basis is done, but it's lacking a translator.
Prospective languages are kept in the file packages/po/PROSPECTIVE along with the master po files. Translators can continue translating, but the translations will kept back and not spreaded into packages by l10n synchronisation script.
Status of prospective languages can be fetched at http://people.debian.org/~seppy/d-i/translation-status.html like for every other language. The only difference is rank.txt. A prospective language is not listed in rank.txt and not calculated into the graph. See Translation status pages and statistics for information about the status and statistics pages.
Since D-I (Debian Installer) RC1 release, the translation of individual core packages is discouraged (though still possible in theory).
Translators should now use the merged files which are hosted in the packages/po directory of the D-I SVN source tree.
During the transition period from the old working method and the new working method, the packages/po directory will only host files for translation teams which have switched their work method.
If your language is not listed, this means that no translation work already took place or that the translation team for your language still uses the old work method. Please get in touch with the D-I i18n coordinator for getting instructions.
The ISO-639 standard defines all languages and standardize codes for designing them as well as the English and French names of these languages.
Each language in the ISO-639 list has a three letter code. The most widely spread languages also have a two-letter code defined.
In Unix systems, the two-letter codes are used in locales files and thus these codes should be used when they exist for a given language.
On Debian systems, the iso-codes packages includes a list of all ISO-639 material. If you are in doubt about the appropriate code for your language, please refer to this list or talk with the D-I i18n coordinator.
Some languages may have variants depending on the region they're spoken in, for instance. First be aware that the topic here are written languages : so if the variants are only in the way to pronounce the language, using such variants is out of topic for Debian translations.
When the variants differ on the way to write the same language (that is when no different ISO codes exist), the country/region part of the locale shoul dbe used. If you are considering doing so, PLEASE GET IN TOUCH with the i18n coordinator. Such cases should be kept to a very low number of occurrences and should only be used when the two languages differ too much.
The currently registered variants are:
zh_CN/zh_TW : Simplified Chinese and Traditional Chinese. These two ways of writing the Chinese language have their own translation teams (but only one mailing list)
pt/pt_BR : classical Portuguese is spoken in Portugal as well as nearly all former Portugal colonies Brazilian Portuguese largely differs from Portuguese and is of course used in Brazil Two different translation sets exist for Debian packages though both teams work closely together (there is for instance only one mailing list)
FAQ about variants:
there are no en_GB/en_US variants in Debian. The use of either British or American spelling is not highly standardised in Debian.
the spanish team has chosen to keep only one variant even though some differences exist in the way Spanish is spoken in Spain and Latin America, for instance.
Translators are highly encouraged to use dedicated GNU gettext files (PO files) editing tools. Even though PO files are plain text files which may be modified with any text editor, the use of dedicated tools will save translators a lot of time.
This document does not intend to be a reference document about these tools. Most tools have been packaged for the Debian GNU/Linux distribution and thus installing them on a Debian system is as easy as running apt-get install <package>.
Short list of PO editing tools:
KBabel (Debian package kbabel): very complete and powerful. Needs installing the KDE libraries (but, of course, it may work without the full KDE environment).
Poedit (Debian package poedit): quite complete tool but no correct handling of non Latin languages on Debian. Uses the WxWindows toolkit.
Gtranslator (Debian package gtranslator): PO-file editor for the GNOME Desktop. No feedback yet.
Emacs po-mode (Debian package gettext-el): editing mode for the emacs/xemacs editor. For Emacs addicts...
The Debian package gettext includes a whole set of command-line utilities for handling i18n material.
Several utilities may help translators in manipulating the PO files contents. For all these utilities, see their respective man pages for details about their use:
msgcat combines together one or several files. When used on a single file, it will wrap the file contents and make it easy to read.
msgmerge may merge together translations from one or two files as well as update a PO files according to the contents of a templates file.
msgfmt is aimed at compiling message catalog files but is also very useful for checking files and get statistics about their contents. The use of msgfmt --check --statistics --output-file=/dev/null file.po is highly recommended before commiting a translation file or sending it to the package maintainer.
2004/11/21 Dennis Stampfer - Writing something about "prospective languages" 2004/09/04 Guillem Jover - Refer to Adam Conrad's subversion backport instead. 2004/08/09 Christian Perrier - Complete rewrite : - "stages" are replaced by "levels" - core D-I translation is made in a general file - more details about each translation specifics - more details about getting/sending translations for each package - lots of other changes - XMLised 2004/07/18 Dennis Stampfer - In statistics is no STATUS.utf8.txt anymore. It is called <lang>.txt 2004/06/12 Christian Perrier - Change all references to D. Barbier pages to Dennis Stampfer or Pierre Machard pages - Change reference from CVS to SVN for base-config - Adapt instructions for ISO-3166 translations 2004/04/17 Jean Christophe Andre - Completed the SVN section (alioth account, SVN) 2004/03/28 Christian Perrier - Added reference to a SVN browse URL - Review of the packages to be translated list by Konstantinos Margaritis 2004/03/26 Christian Perrier - Reordered arch-dependent packages accordign to release status 2004/03/24 Javier Fernandez-Sanguino - Minor changes: typo fixes and some more verbosity in some places. - Point people to the debian-i18n mailing list. - Added pointer to iso-codes CVS access (took me a bit to find it) 2004/03/24 Christian Perrier - Major update: - debian-installer switched to subversion - reference page is now Dennis Stampfer's page which references other specialised status pages - general modifications for fitting the current context of d-i development 2004/03/10 Christian Perrier - Added mention of Seppy's status page for level2 2004/02/16 Christian Perrier - Added instructions for keeping translations consistent among packages 2004/02/14 Christian Perrier - Corrected instructions for iso-codes 2004/01/30 Christian Perrier - give details about kbd-chooser/console-data - mention *core* udebs in translation order 2004/01/22 Christian Perrier - updated packages information (countrychooser and partman-* added) - mentioned aspell in tools - appendix added with iso-codes note - reformatted changelog - new title 2004/01/20 Javier Fernandez-Sanguino - added more packages and mentioned the 'by priority' and 'popular' criteria 2003/12/20 Christian Perrier - updated packages list and more information - rewamped the file 2003/11/08 Petter Reinholdtsen - file creation |