[Bug 1181183] Re: Add support for the Ubuntu SDK apps to dh_translations

David Planella david.planella at ubuntu.com
Mon May 20 17:13:58 UTC 2013


Al 20/05/13 16:46, En/na Martin Pitt ha escrit:
> Olivier Tilloy [2013-05-17 14:54 -0000]:
>> The Ubuntu Touch QtCreator plugin exposes a "Translations" tool that has two options:
>>  1) Export ".pot" File
>>  2) Generate ".mo" File
>>
>> The first option invokes xgettext with the following arguments:
>>
>>     xgettext -o messages.pot --qt --c++ --add-comments=TRANSLATORS
>> --keyword=tr %PROJECTFILES%
> 
> Is this "translation tool" implemented in the build system, or is that
> separate logic in the GUI only?
> 

These are two menu entries in Qt Creator calling a script in the UI, so
a manual step pointing and clicking, disconnected from the build system.

> Is this invoked automatically anyway?

Not automatically, it's a manual step.

The challenge is that for simple SDK apps there is either no build
system or qmake, which can create Makefiles from *.pro snippets, but
it's a bit limited. An example is the Clock core app, where I ended up
using override_dh_install in debian/rules directly as per your guidance:

https://code.launchpad.net/~dpm/ubuntu-clock-app/translations-
packaging/+merge/162785

In Olivier's case, he is using CMake, which seems to be more flexible in
defining build targets/rules:

https://code.launchpad.net/~osomon/webbrowser-app/i18n/+merge/164276

> I. e. is the issue here that
> dh_translations overwrites an already correct .pot file with an
> incomplete one, and we just need to disable dh_translations for Ubuntu
> SDK packages?

There is actually no issue. The only thing is that we were writing our
own rules to generate the pot file, but most importantly to build and
install translations, and we were wondering if the best thing to do
would be to simply expand dh_translations to support SDK apps and use
the standard to do this.

> Or is the point of this bug to replace the GUI tool's
> export function with dh_translations?
> 

See the comment above. It's not as much as the export part, but rather
the build and install part, which the GUI cannot take care of when
installing an app.

> We can certainly call above xgettext command in dh_translations if we
> detect a project where this command is suitable. Do you have some
> guidance how to do this detection?
> 

I'm not sure about the best way of detecting this, but in general,
Ubuntu SDK projects:

- Import Ubuntu.Components
- Use the i18n.tr() calls for translations

>> The alternative, if I understand it correctly, would be to add a
>> "$domain.pot" target to the make rules (need to investigate how to do
>> that with cmake). Is that correct?
> 
> That would also work, yes. It depends a little bit how much you want
> these to work in a non-Debian(ish) environment, i. e. whether you have
> some notion of a non-packaged "upstream" release of these projects.
> 

I think it might make sense to define a standard set of targets for
translations in CMake anyway, in the way they are already defined for
autotools-based projects (the make $domain.pot is a good example).

Cheers,
David.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to pkgbinarymangler in Ubuntu.
https://bugs.launchpad.net/bugs/1181183

Title:
  Add support for the Ubuntu SDK apps to dh_translations

Status in “pkgbinarymangler” package in Ubuntu:
  Incomplete

Bug description:
  dh_translations, when it builds a POT file from the source files, invokes intltool-update, which in turn invokes xgettext to extract the translatable strings from the source files.
  By default, xgettext looks for a set of predefined keywords to identify translatable strings.
  This set of predefined keywords doesn’t include "i18n.tr", which is the function used in QML files that use the Ubuntu SDK.
  As a result, no strings are found, and no POT file is generated.

  Ideally, dh_translations should support passing (arbitrary?) extra
  options to intltool-update/xgettext. Or at least extend the default
  list of keywords to support the apps written with the Ubuntu SDK.

  ProblemType: Bug
  DistroRelease: Ubuntu 13.04
  Package: dh-translations 117
  ProcVersionSignature: Ubuntu 3.8.0-21.32-generic 3.8.8
  Uname: Linux 3.8.0-21-generic x86_64
  NonfreeKernelModules: nvidia wl
  ApportVersion: 2.9.2-0ubuntu8
  Architecture: amd64
  CheckboxSubmission: 2c7995ffdf051a6d0adf7ab2c7be5ba9
  CheckboxSystem: 7e42599bda39ea7ff8b528272b6ef52b
  Date: Fri May 17 12:27:40 2013
  EcryptfsInUse: Yes
  InstallationDate: Installed on 2013-03-26 (51 days ago)
  InstallationMedia: Ubuntu 13.04 "Raring Ringtail" - Alpha amd64+mac (20130326)
  MarkForUpload: True
  PackageArchitecture: all
  SourcePackage: pkgbinarymangler
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pkgbinarymangler/+bug/1181183/+subscriptions




More information about the foundations-bugs mailing list