KubuntuTranslationsLifecycle
THIS IS CURRENTLY A DRAFT
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.
Some quick facts
- All KDE translations imported from upstream are contained in the kde-l10n-xx packages (one per language)
- These 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.
- The templates (POT files) for all of the above, created on build
- entry.desktop files - note: what are these?
- Translations for the documentation
- Translations for man pages
Other translated media (audio, video, transcript scripts, etc.)
- From the above, only the following will be stripped from the binary packages and imported into Launchpad:
- Translations for the applications (PO files) and their templates (POT files)
- Translations for the applications' .desktop files (PO files) and their templates (POT files)
- These packages contain:
- On the distro, KDE translations will be installed in the following way:
- 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
- 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
- In the KDE language packs: language-pack-kde-xx, one per language
How are translations fetched from upstream
Applications, documentation
Desktop files
* Directly from upstream's SVN, from the stable branch
entries.desktop
Import workflow for KDE core
- Upstream:
- The upstream sources are gettextized (actually, qt'ized) but do not contain translations (PO files).
- 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 applications' sources are packaged
- The kde-l10n-xx sources, containing exclusively translations, are packaged
- 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.)
- The kde-l10n-xx binary packages, do _not_ generate POT files on build
- 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 packages.
- Issues:
- 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.
- 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).
The kde-l10n packages and language packs
Kubuntu developer tools related to translations
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).