[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Description of language packages and their current use in Debian and Ubuntu



Here (i18n meeting at Extremadura) we had a discussion about language packs
and how they could be used in the debian-installer in order to prevent some
of the scalability issues with new languages being added all the time (and
d-i limitations)

Since there was some misconception of what language packages are, I have
written a description of what they are and how they are used. If you are
interested please keep on reading the (long) text below (I will probably add
it to the Debconf6 paper soon). Feel free to point me to errors in the
text if you find any .

Regards

Javier

Language packs
--------------

What are language packs?
------------------------

A language pack (or language package) is a "complement" for a software package
that provides a translation for a given language separately from the main
package. This complement is distributed in a separate way and can either be
produced by the upstream developers and extracted from the main package source
or they can be produced by independent third parties.

How are language packs currently used on Debian?
------------------------------------------------

Debian currently has language packs for:

[ Note: $LANG can be substituded to locales such as 'fr', 'es', 'de'... ]

- KDE: kde-i18n-$LANG packages provide internationalized files for the the KDE
  Desktop Environment. This includes data for applications (sounds, pictures),
  help files and MO binary files (installed at
  /usr/share/locale/$LANG/LC_MESSAGES/)

- OpenOffice: different packages are provided which are related to OO and 
  are dependant on i18n: openoffice.org-help-$LANG (help files),
  openoffice.org-hyphenation-$LANG (hyphenation rules),
  openoffice.org-thesaurus-$LANG (thesaurus) and openoffice.org-l10n-$LANG. This
  last package includes data files (bitmaps, document templates),
  configuration and translation for the UI.

- Mozilla, Firefox and Thunderbird: this software uses
  language packages (mozilla-locale-$LANG, mozilla-firefox-locale-$LANG,
  mozilla-thunderbird-locale-$LANG) which provides both the translation for the
  UI and regional-related content (such as l10n-specific bookmarks)

Other software (such as 'fortunes', 'myspell' or 'dict') has also (smaller)
language packs.


What are the advantages of language packages?
--------------------------------------------

There are several advantage to language packages.
As they are distributed independently from the software:

- users can only install an specific translation instead of having to install
  all the translations (saving disk space and bandwidth)

- language packs can have a different release process from the main program,
  providing a way to make translation updates (new translations, translation
  fixes, etc..) without having to make a new software release.

How does Ubuntu use language packs?
-----------------------------------

Besides the language packs for some specific software, which Ubuntu shares
with Debian, Ubuntu introduced system-wide language packages called
language-pack-$LANG. These packages pulll in:

- a package (language-pack-$LANG-base) that provides update MO binary files for
  *some* applications under /usr/share/locale-langpack/ and uses
  '/usr/sbin/install-language-locales' in postinst.

[ This package Recommends: ]

- a meta-package (language-support-$LANG) that pulls in translations for
  OpenOffice, Mozilla (Firefox) and the proper dictionary information
  (aspell-es, wspanish)

The 'language-support-$LANG' metapackage is similar to the meta-packages for
language packages that were removed from Debian and converted into tasksel's
selections.

In order for the contents of language-pack-$LANG-base to be used Ubuntu's
glibc is patched (debian/patches/ubuntu-altlocaledir.dpatch [1]) so that 
it uses an alternate gettext tree in /usr/share/locale-langpack/

Consequently, after a release, language-pack-$LANG-base packages can be
downloaded (from the release's repository) to include updated or even new
translations (these packages are built automatically based on the information
at Rosetta with the 'langpack-o-matic' [2] scripts)

These packages are installed when the user uses the "language-selector" tool.
(this tool also localises the environment like 'localization-config' does [3])


[1] This patch was introduced for Hoary, in december 2004, and started being
tested in january 2005 (see
http://people.ubuntulinux.org/~mako/ubuntu-traffic/u20050128_23.html)
See
http://utnubu.alioth.debian.org/scottish/original/glibc/glibc_2.3.6-0ubuntu17.patch
Notice that it cannot be currently disabled (see Bug #39408)

[2] http://people.ubuntu.com/~pitti/bzr/langpack-o-matic/?C=S;O=A

[3] https://wiki.ubuntu.com/LanguageSelectorImprovements

For more info:
https://wiki.launchpad.canonical.com/RollingLanguagePacks
https://wiki.launchpad.canonical.com/RosettaLanguagePackExport
https://wiki.ubuntu.com/LanguagePacksForUniverse
https://wiki.ubuntu.com/LanguagePacksCD
https://wiki.ubuntu.com/UbuntuExpress/LanguagePacks
https://wiki.ubuntu.com/LanguagePackVsSupport
https://wiki.ubuntu.com/LangpacksDesktopfiles
https://wiki.ubuntu.com/NonLanguagePackTranslationDeadline
https://wiki.ubuntu.com/OpenOfficeLangPacks
https://wiki.ubuntu.com/NextGenerationLocalizationSystem

For history knowledge:
https://wiki.ubuntu.com/MataroSessionsWorkshops/LanguagePacks
https://wiki.ubuntu.com/MataroSessionsWorkshops/LanguagePacksBOF
https://wiki.ubuntu.com/UbuntuDownUnder/BOFs/LanguagePackRoadmap
https://wiki.ubuntu.com/UbuntuDownUnder/BOFs/LanguageSupportPackages
https://wiki.ubuntu.com/UbuntuDownUnder/BOFs/RollingLanguagePacks


What are the issues with language packages?
-------------------------------------------

- they cannot be Depended: on by the main package (at most Recommended:) and
  the user has to manually select them, with the current packaging system
  there is not an easy way to "recommend" the user one of the language packs
  (the one most closely related to his language selections)

- they are not automatically removed when the software is removed (unless
  using aptitude's --with-recommends, but that means that the user installs
  *all* language packages at the same time)

- if the language pack is provided for a large collection of software (such as
  KDE) the user has to install the full language pack regardless of the 
  pieces of software he actually uses. 

- if the language pack is tightly related to a specific software version and
  its release process does not follow the main software release process you
  might end up with *old* language packs which are not up-to-date. This is
  specially true when the language pack is distributed by third-parties. In
  Debian this has led to issues with propagation into testing of Mozilla
  packages due to language packs in testing not being updated (they have to be
  removed from testing before the new version of the Mozilla software is intrduced)

- some software (e.g. Firefox) make it possible to install language packs
  through their own UI mechanism (independent of the system's package) which
  might cause problems for users (See Ubuntu Bug #31284 and
  http://librarian.launchpad.net/1566411/update_not_supported.png)

- buggy translation updates might lead to translations "broken" after the
  release (see Ubuntu Bug #52267)

- even if language packs do not update the software they might introduce
  bugs which might break software (e.g. segmentation fault in dd due to
  problematic MO binary files in language packs, Ubuntu bug #42264)

Attachment: signature.asc
Description: Digital signature


Reply to: