KubuntuTranslationsLifecycle

Differences between revisions 2 and 16 (spanning 14 versions)
Revision 2 as of 2009-07-24 12:10:24
Size: 2555
Editor: p54A13A35
Comment: Added more info
Revision 16 as of 2010-03-23 20:28:59
Size: 8246
Editor: 93-152-149-16
Comment: Translation of the page
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was copied from Translations/Upstream/KDE/KubuntuTranslationsLifecycle
Line 3: Line 4:
'''THIS IS CURRENTLY A DRAFT''' ~-[[Translations]] > [[Translations/Upstream|Upstream]] > [[Translations/Upstream/KDE|KDE]] > Kubuntu Translations Lifecycle -~

||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;"><<TableOfContents>>||

== Introduction ==

The purpose of this page is to document the lifecycle of translations in Kubuntu since the import from upstream until they are shown to users.

== Overview ==

 * '''IMPORT''': all KDE translations imported from upstream are contained in the `kde-l10n-*` packages (one per language). The translation templates are created at package build time from the KDE ''application'' packages.
  * '''Package content''' - the `kde-l10n-*` packages contain:
   * Translations for the applications (PO files)
   * Translations for the applications' .desktop files (as PO files) - in KDE those translations are created separately from the application. For each KDE module, there is a desktop_<modulename>.po file containing all .desktop translations for all applications in the module.
   * entry.desktop files - note: what are these?
   * Translations for the documentation
   * Translations for man pages
   * Other translated media (audio, video, [[http://techbase.kde.org/Localization/Concepts/Transcript|transcript]] scripts, etc.)
  * '''Package content''' - the ''application'' KDE packages contain:
   * The templates (POT files) for all of the above PO files, created on build
  * '''Package content imported into Launchpad''': from the above, only the following will be stripped from the binary packages and imported into Launchpad:
   * Translations for the applications (PO files) from the `kde-l10n-*` packages
   * Their templates (POT files) from the ''application'' KDE packages
   * Translations for the applications' .desktop files (PO files) and their templates (POT files)

 * '''EXPORT''': on the distro, KDE translations will be installed in the following way:
  * '''Language packs''': in the KDE language packs: language-pack-kde-xx, one per language
   * Translations for the applications (MO files) at `/usr/share/locale-langpack/<langcode>/LC_MESSAGES`
   * Translations for the applications' .desktop files (MO files) at `/usr/share/locale-langpack/<langcode>/LC_MESSAGES`
   * entry.desktop files at at `/usr/share/locale-langpack/<langcode>`, copied verbatim from the kde-l10n-xx packages
  * '''Additional translations''': in the kde-l10n-xx packages, one per language
   * These contain the documentation and additional translated media which cannot be imported into Launchpad, and will be 1:1 with upstream. They will be installed at locations such as `/usr/share/doc/kde/HTML/<langcode>` or `/usr/share/locale/<langcode>/LC_SCRIPTS`
   * Those languages without upstream translations for these media will have empty packages, but nonetheless they will be installed

/!\ It seems that security updates work differently: they are copied from the private security PPAs, where translations are not stripped. Thus it seems that for security updates the templates are imported exactly as they are from upstream.

== How are translations fetched from upstream ==

=== Applications, documentation ===

=== Desktop files ===

 * Directly from upstream's SVN, from the stable branch

=== entries.desktop ===

 * langpack-o-matic has a script, `update-kde-tars` which grabs the `entries.desktop` files from all the kde-l10n-xx packages and generates entries.desktop files for any language-pack-kde-xx which does not have a corresponding kde-l10n-xx
 * These should then be included in language-pack-kde-xx but currently (2009-08-01) is broken
Line 7: Line 55:
 * Upstream:
  * The upstream sources are gettextized (actually, qt'ized) but do not contain translations (PO files).
 * '''Upstream''':
  * The upstream sources are internationalised with KDE functions for gettext, PO files are kept separate from the source code in SVN
Line 10: Line 58:
 * Packaging:  * '''Packaging''':
Line 12: Line 60:
  * The applications' sources are packaged   * The source packages generate POT files on build (using `extract-message.sh` and the `Message.sh` script included in each package.)
Line 14: Line 62:
 * Build:
  * The applications' binary packages generate POT files on build (the names of the POT files are extracted from a Messages.sh file in the sources.)
  * kde-l10n-xx packaging includes downloading the desktop_<package>.pot files for KDE's modules from SVN. It also downloads other desktop files as listed in /usr/lib/kubuntu-desktop-i18n/desktop-template-list
 * '''Build''':
Line 17: Line 65:
 * Import:  * '''Launchpad import''':
Line 21: Line 69:
The main difference between GNOME/extragear/other and KDE4 core (as far as the import into Launchpad goes) is that the first ones generally have a single template (domain) per source package, whereas the latter have got many templates (domains) per source packages. The main difference between GNOME/extragear/other and KDE4 core (as far as the import into Launchpad goes) is that the first ones generally have a single template (domain) per source package, whereas the latter have got many templates (domains) per source package.
Line 24: Line 72:
  * Some upstream sources (e.g. KTorrent) do not contain the Messages.sh file, which needs to be added in the package
  * The kde-l10n packages contain more translated content other than PO files (audio files, pictures, etc.). It should be investigated whether it is worth installing them by default.
  * In the past some upstream sources (e.g. KTorrent) did not ship with Messages.sh files which had to be added manually, new packagers should watch out for this.
  * The kde-l10n packages contain more translated content other than PO files (audio files, pictures, etc.). It should be investigated whether it is worth installing them by default (update: language-selector should already do this, unless it's hitting Bug:450349).
Line 27: Line 75:
  * kde-l10n-xx do generate desktop_kde-l10n-xx.pot files, these should be ignored (fixes to kubuntu.mk to stop them being generated welcome).
  * The generated .desktop templates are in the form desktop_<sourcepackage>.pot. The source package does not always match the template name used upstream so it needs to be overridden in the debian/rules file.
Line 29: Line 79:

== Language variants ==

 * In Kubuntu, language variants are shipped in the same language pack as the main language code. That is, taking sr and sr@latin as an example, both the sr and the sr@latin translations will be shipped in the `language-pack-kde-sr` package.
 * In Launchpad variants are not shown in the UI, but are imported and exported transparently.
 * In KDE upstream, the variants can be found in two different places:
   * '''Application PO files''': in the main language tarballs: in the variant subfolder (e.g. under sr@latin), in SVN: http://websvn.kde.org/branches/stable/l10n-kde4/sr/sr@latin
   * '''Desktop PO files''': http://websvn.kde.org/branches/stable/l10n-kde4/sr@latin/messages/

The following language variants can be currently found in the KDE stable branch:

 * be@latin
 * ca@valencia
 * sr@latin
 * uz@cyrillic

In order to fetch the variant translations for Kubuntu:

 * '''Application PO files''': the translations in the language@variant subfolder in the upstream tarball should also be imported into Launchpad Translations.
 * '''Desktop files''': the scripts fetching the files for the main language code package (kde-l10n-xx) should look at the SVN location for the variant as well.

Translations > Upstream > KDE > Kubuntu Translations Lifecycle

Introduction

The purpose of this page is to document the lifecycle of translations in Kubuntu since the import from upstream until they are shown to users.

Overview

  • IMPORT: all KDE translations imported from upstream are contained in the kde-l10n-* packages (one per language). The translation templates are created at package build time from the KDE application packages.

    • Package content - the kde-l10n-* packages contain:

      • Translations for the applications (PO files)
      • Translations for the applications' .desktop files (as PO files) - in KDE those translations are created separately from the application. For each KDE module, there is a desktop_<modulename>.po file containing all .desktop translations for all applications in the module.

      • entry.desktop files - note: what are these?
      • Translations for the documentation
      • Translations for man pages
      • Other translated media (audio, video, transcript scripts, etc.)

    • Package content - the application KDE packages contain:

      • The templates (POT files) for all of the above PO files, created on build
    • Package content imported into Launchpad: from the above, only the following will be stripped from the binary packages and imported into Launchpad:

      • Translations for the applications (PO files) from the kde-l10n-* packages

      • Their templates (POT files) from the application KDE packages

      • Translations for the applications' .desktop files (PO files) and their templates (POT files)
  • EXPORT: on the distro, KDE translations will be installed in the following way:

    • Language packs: in the KDE language packs: language-pack-kde-xx, one per language

      • Translations for the applications (MO files) at /usr/share/locale-langpack/<langcode>/LC_MESSAGES

      • Translations for the applications' .desktop files (MO files) at /usr/share/locale-langpack/<langcode>/LC_MESSAGES

      • entry.desktop files at at /usr/share/locale-langpack/<langcode>, copied verbatim from the kde-l10n-xx packages

    • Additional translations: in the kde-l10n-xx packages, one per language

      • These contain the documentation and additional translated media which cannot be imported into Launchpad, and will be 1:1 with upstream. They will be installed at locations such as /usr/share/doc/kde/HTML/<langcode> or /usr/share/locale/<langcode>/LC_SCRIPTS

      • Those languages without upstream translations for these media will have empty packages, but nonetheless they will be installed

Warning /!\ It seems that security updates work differently: they are copied from the private security PPAs, where translations are not stripped. Thus it seems that for security updates the templates are imported exactly as they are from upstream.

How are translations fetched from upstream

Applications, documentation

Desktop files

  • Directly from upstream's SVN, from the stable branch

entries.desktop

  • langpack-o-matic has a script, update-kde-tars which grabs the entries.desktop files from all the kde-l10n-xx packages and generates entries.desktop files for any language-pack-kde-xx which does not have a corresponding kde-l10n-xx

  • These should then be included in language-pack-kde-xx but currently (2009-08-01) is broken

Import workflow for KDE core

  • Upstream:

    • The upstream sources are internationalised with KDE functions for gettext, PO files are kept separate from the source code in SVN
    • All translations (PO files) are shipped in a separate tarball for each language (kde-l10n-xx)
  • Packaging:

    • Those sources are packaged as .deb packages:
    • The source packages generate POT files on build (using extract-message.sh and the Message.sh script included in each package.)

    • The kde-l10n-xx sources, containing exclusively translations, are packaged
    • kde-l10n-xx packaging includes downloading the desktop_<package>.pot files for KDE's modules from SVN. It also downloads other desktop files as listed in /usr/lib/kubuntu-desktop-i18n/desktop-template-list

  • Build:

    • The kde-l10n-xx binary packages, do _not_ generate POT files on build
  • Launchpad import:

    • The application's POT files are put in the import queue upon upload of the application package to the archive
    • The PO files are put in the import queue upon upload of the kde-l10n-xx package to the archive

The main difference between GNOME/extragear/other and KDE4 core (as far as the import into Launchpad goes) is that the first ones generally have a single template (domain) per source package, whereas the latter have got many templates (domains) per source package.

  • Issues:
    • In the past some upstream sources (e.g. KTorrent) did not ship with Messages.sh files which had to be added manually, new packagers should watch out for this.
    • The kde-l10n packages contain more translated content other than PO files (audio files, pictures, etc.). It should be investigated whether it is worth installing them by default (update: language-selector should already do this, unless it's hitting 450349).

    • Quassel and Arora are in main and use Qt's translation system and produce .qm files. As a result, these don't get in language packs at all. Qt translation import is not trivial, since Qt use their own XML-based format, which is supported by gettext (but reportedly always one step behind, which prevents both Kubuntu and upstream from using gettex).
    • kde-l10n-xx do generate desktop_kde-l10n-xx.pot files, these should be ignored (fixes to kubuntu.mk to stop them being generated welcome).
    • The generated .desktop templates are in the form desktop_<sourcepackage>.pot. The source package does not always match the template name used upstream so it needs to be overridden in the debian/rules file.

The kde-l10n packages and language packs

Language variants

  • In Kubuntu, language variants are shipped in the same language pack as the main language code. That is, taking sr and sr@latin as an example, both the sr and the sr@latin translations will be shipped in the language-pack-kde-sr package.

  • In Launchpad variants are not shown in the UI, but are imported and exported transparently.
  • In KDE upstream, the variants can be found in two different places:

The following language variants can be currently found in the KDE stable branch:

  • be@latin
  • ca@valencia
  • sr@latin
  • uz@cyrillic

In order to fetch the variant translations for Kubuntu:

  • Application PO files: the translations in the language@variant subfolder in the upstream tarball should also be imported into Launchpad Translations.

  • Desktop files: the scripts fetching the files for the main language code package (kde-l10n-xx) should look at the SVN location for the variant as well.

  • batl10n is a script that assists Kubuntu packagers with KDE updates. It mostly just walks through all kde-l10n tarballs, merges the packaging in and create ready-to-upload source packages (in the process it can also apply batch changes of course).

  • KDE l10n orphans parser


CategoryTranslations

Translations/Upstream-BG/KDE/KubuntuTranslationsLifecycle (last edited 2010-03-23 20:28:59 by 93-152-149-16)