
   #Debian GNU/Linux Installer internationalisation and localisation
   documentation

   Debian GNU/Linux Installer internationalisation and localisation
   documentation
     _________________________________________________________________

Debian GNU/Linux Installer internationalisation and localisation
documentation

Christian Perrier

Dennis Stampfer

Petter Reinholdtsen

   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

   1. Abstract
   2. Debian Installer i18n coordination 
   3. The work of translators 

        3.1. Method for working on D-I translations 
        3.2. Working with Subversion (SVN) repositories 
        3.3. Updating debian/changelog entries for Debian packages 
        3.4. Reporting bugs against Debian packages regarding
                localisation 

        3.5. Methods and advices for translation work 
        3.6. Translation status pages and statistics 
        3.7. String freezes and the D-I release process 

   4. The work of maintainers 

        4.1. Generalities about D-I i18n and l10n 
        4.2. English templates handling 
        4.3. "New" work method for translators 
        4.4. Handling modifications to templates 
        4.5. String freezes 
        4.6. Releasing packages 

   5. Technical details about processes involved in Debian Installer i18n
          handling 

        5.1. Synchronisation between packages source trees and
                translations 

        5.2. Synchronisation method 
        5.3. l10n synchronisation script 
        5.4. About prospective languages 

   6. Appendixes 

        6.1. Transition from old (pre-RC1) work method to new work method
                
        6.2. ISO-639 codes, languages and languages variants 
        6.3. Editors and tools 

   7. Changelog for this document 

1. Abstract

   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.

2. Debian Installer i18n coordination

   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.

3. The work of translators

3.1. Method for working on D-I translations

   When starting to translate D-I, please follow the following steps:

3.1.1. Initial step (level 0)

   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.

3.1.1.1. First contact with D-I development team

   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).

3.1.1.2. Prerequisites

   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.

3.1.1.3. Request for early support for your language in Debian Installer

   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.

3.1.1.4. Indications regarding your language

   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: Franais.

3.1.1.5. Indications about the handling of your language in Linux console

   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: Yǰ.

3.1.1.6. Locales

   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.

3.1.1.7. Prepare yourself to translation

   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.

3.1.1.8. Enter the D-I team

   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.

3.1.1.9. Follow the D-I development

   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...

3.1.2. The seven steps to heaven or how to reach World Domination

   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...

3.1.2.1. Levels summary

   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.
    1. level 1 : all core D-I packages
    2. 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)
    3. 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)
    4. 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)
    5. level 5 : all Debian base system packages (debconf+programs)
    6. level 6 : all Debian packages of priority Standard
       (debconf+programs)
    7. level 7 : all other Debian packages (debconf+programs)

3.1.2.2. Level 1 of translation

   All level 1 translations are related to D-I first stage.

3.1.2.2.1. D-I core files

   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 1 

   You 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 1 

   You 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.

3.1.2.3. Level 2 of translations

   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...

3.1.2.3.1. Newt

   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 newt 

   This 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 newt 

   The 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.

3.1.2.3.2. Base-config

   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-config 

   The 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.p
   ot
   Sending/commiting files for base-config 

   If 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.

3.1.2.3.3. Shadow

   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_x
   x.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 shadow 

   The 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).

3.1.2.3.4. Tasksel

   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 tasksel 

   The 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_x
   x.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 tasksel 

   If 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.

3.1.2.3.5. Iso-codes

   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-codes 

   The 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-codes 

   If 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.

3.1.2.3.6. Console-data

   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_debia
   n_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-data 

   The 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_debia
   n_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-data 

   If 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.

3.1.2.3.7. Exim4

   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 exim4 

   This 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_debia
   n_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 exim4 

   The 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.

3.1.2.4. Level 3 of translations

   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

3.1.2.4.1. Popularity-contest

   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-contest 

   The 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_debi
   an_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-contest 

   The 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.

3.1.2.4.2. discover1 (debconf)

   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_p
   o_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.

3.1.2.4.3. aptitude

   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 aptitude 

   This 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 aptitude 

   The 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.

3.1.2.4.4. pppconfig

   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 pppconfig 

   This 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 pppconfig 

   The translation file must be reported as a bug against the pppconfig
   package. Please see the Reporting bugs against Debian packages section
   of this document.

3.1.2.4.5. Xdebconfigurator

   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 xdebconfigurator 

   The 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_d
   ebian_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 xdebconfigurator 

   If 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.

3.1.2.4.6. Localization-config

   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-config 

   The 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-confi
   g_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_deb
   ian_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-config 

   If 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-config 

   As 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

3.1.2.4.7. Console-common

   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-common 

   The 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_deb
   ian_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_p
   o_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-common 

   If 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.

3.1.2.4.8. dictionaries-common

   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-common 

   This 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-commo
   n_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_deb
   ian_po.pot
   Sending files for dictionaries-common 

   The 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.

3.1.2.4.9. pcmcia-cs

   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-cs 

   This 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_p
   o_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-cs 

   The 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.

3.1.2.5. Level 4 of translations

   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.

3.1.2.5.1. debconf (program)

   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.

3.1.2.5.2. discover1 (program)

   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.

3.1.2.5.3. dpkg

   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 dpkg 

   This 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 dpkg 

   The 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.

3.1.2.5.4. apt

   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 apt 

   This 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 apt 

   The 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..:-)

3.1.2.5.5. Shadow

   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 shadow 

   The 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).

3.1.2.6. Level 5 of translations

   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

3.1.2.7. Level 6 of translations

   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

3.1.2.8. Level 7 of translations

   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

3.2. Working with Subversion (SVN) repositories

3.2.1. Debian Installer SVN repository (and base-config/tasksel)

   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.

3.2.2. Installing SVN

   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.

3.2.3. Using SVN to get and put back files

   Once your account is allowed to write to the project, you can retrieve
   the full project using the checkout commands you will find on the D-I
   translation reference pages:

   [TODO : put correct URLs here]

3.3. Updating debian/changelog entries for Debian packages

   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.

3.4. Reporting bugs against Debian packages regarding localisation

   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.

3.4.1. Sending bug reports from a Debian system

   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 temp
lates 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.

3.4.2. Sending bug reports from a non Debian system

   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).

3.5. Methods and advices for translation work

   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).

3.5.1. Remain consistent

   Some strings are identical in two or more packages. Please try to
   translate them consistently.

3.5.2. Update existing translations

   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.

3.5.3. Test your translations

   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).

3.5.4. Be careful about variables substitutions

   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 proprits 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.

3.5.5. Get help

   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.

3.6. Translation status pages and statistics

   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.

3.7. String freezes and the D-I release process

   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.

4. The work of maintainers

4.1. Generalities about D-I i18n and l10n

   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.

4.2. English templates handling

   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.

4.3. "New" work method for translators

   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.

4.4. Handling modifications to templates

   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.

4.4.1. Handling trivial modifications to templates

   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.

4.5. String freezes

   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.

4.6. Releasing packages

   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).

5. Technical details about processes involved in Debian Installer i18n
handling

5.1. Synchronisation between packages source trees and translations

   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.

5.2. Synchronisation method

5.2.1. Initial synchronisation

   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.

5.2.2. Switch a language to the new method

   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)

5.2.3. Later synchronisations

   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:
    1. for each D-I package:
         a. synchronize the local copy with the D-I SVN
         b. run debconf-updatepo
         c. commit back the files in debian/po
    2. Update the general template.pot file:
         a. merge all templates.pot files to packages/po/template.pot
         b. commit this file
    3. For each PO file:
         a. synchronize with D-I SVN
         b. update with packages/po/template.pot
         c. commit back the changed file to D-I SVN
    4. for each D-I package:
         a. synchronize the local copy with the D-I SVN (in case some
            update occurred in the meantime)
         b. update debian/po/*.po files with files in packages/po/
         c. 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).

5.3. l10n synchronisation script

   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.

5.4. About prospective languages

   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.

6. Appendixes

6.1. Transition from old (pre-RC1) work method to new work method

   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.

6.2. ISO-639 codes, languages and languages variants

   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.

6.3. Editors and tools

6.3.1. PO files editors

   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...

6.3.2. PO files tools

   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.

7. Changelog for this document

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
     _________________________________________________________________
