On Thu, Apr 29, 2010 at 5:07 PM, Fabien Chéreau
> Dear all,
> I have been thinking a bit about the problems we face with the current
> way translation is managed. The problems are:
> - The dependency with libintl and libiconv is (really) problematic on
> MacOSX, and add extra steps to set up a development environment on
> - The code of Translator is quite ugly using environment variables etc..
> - We need a way to manage translation for plugins, scripts.
> - It would be nice to separate translation of the now well defined
> core from the GUI
> - Translations are stored in OS specific locations and it's quite
> annoying for performing tests while coding because it requires to
> 'make install'.
> For the first 2 problems, a cleaner solution would be to adopt qt
> translation mechanism instead of relying on the gettext library. In
> the same time we still want to be able to use the excellent Launchpad
> Rosetta features based on gettext .po and .pot files. However Qt uses
> .ts files instead of .po files (and .qm instead of .mo). So what we
> could do is to still use gettext tools to extract translatable string
> and update the .pot file, but convert the .po files from launchpad to
> .qm (with lconvert tool) and use Qt translation stuff in the code. Qt
> also apparently allows to translate into scripts which would solve the
> other problem.
> Finally for separating the translation of the different components
> (core, GUI, TUI, skycultures, plugins, scripts) we need to be able to
> manage several collections of translations, which is more or less what
> gettext does with the "domains", but I think we should just code it
> ourself and have a good control of which and when translation files
> are loaded instead of relying on weird gettext domain feature. We
> could for example have a new translations/ directory in data/
> containing files following the structure of what is returned by
> Launchpad when translations .po files are returned.
> So to summarize the actions to take would be:
> - Create a script which regenerates the .pot file (using xgettext).
> - Create a script which processes the launchpad results to generate
> the .gm files and put them in the proper directory.
> - Change the code to use Qt feature when q_() is used instead of libintl.
> What do you think?
Can it be done quickly without introducing any new bugs? Ubuntu 10.04
is out today, I think that the effort should be on closing the current
bugs (if possible) and releasing 0.10.5. A lot of people, especially
ATI graphics cards owners, are getting fed up with 0.10.4. (And it
seems that even the current build doesn't fix the defects on some