I've made a pull request here : https://github.com/qgis/QGIS/pull/2213

With the strategy to produce a python file which calls QCoreApplication.translate with each string (names, groups).

Could you give me a feedback about this.

Best regards

Arnaud

Le 16/07/2015 14:56, Arnaud Morvan a écrit :

If we make files algnames_<locale>.txt
=> translators would have to make pull request for each language to translate the name of a new algorithms. => It should be difficult to identify not translated names, to update text files.

Like alex says: self.tr() method is only applicable to pure-python algorithms

So my proposition is to create a python script that generate a temporary python file which calls translate() with all names and groups (iterating over providers and algorithms).
This file could be parsed normally by pylupdate
And we could call translate at runtime to get displayNames for the toolbox External plugins algorithms will be added to translations (depending on plugins installed when running update_ts.sh), but this not seems to be blocker.

With simplified interface definition file: algclassification.txt
algorithms not present in this text file do not display in simplified interface if we made one text file for each language, this would cause simplified interface to display different algorithms for each language. This text file can eventually be translated in python to be parsed by pylupdate

Arnaud Morvan
Ingénieur logiciel
Tél: +33 (0)4 58 48 20 32

Camptocamp France SAS
Savoie Technolac, BP 352
73377 Le Bourget du Lac Cedex
http://www.camptocamp.com

Le 16/07/2015 13:12, Alexander Bruy a écrit :
Hi all,

this topic was raised previously and problem is a bit more complex
then just using self.tr() for algorithm name and group. Such approach
will work only for very limited amount of algorithms with pure-Python
implementation.

But what to do with algorithms, defined via description files? In this
case algorithm name and group written in description files and use
English. Seems we need something more advanced then just
overriding getCommandLineName().


2015-07-15 17:54 GMT+03:00 Victor Olaya <[email protected]>:
No need to do that

There is a name property for algorithms (used by the toolbox, not the
cmd line), and then there is the getCommandLineName() method, (which
is used by the command line). The problem here is that, by default,
the getCommandLineName method returns a name that is derived from the
alg name. It is easy to fix that, just override that method for all
algorithms. The problem is that "all" algorithms means hundreds of
them...

It's something that should have been done from the beginning, but I
just assumed that it was a good idea to rely on the base
implementation which uses the human-readable name for the cmd line
name, so there was no need to implement that method ofr every
algorithm, saving some work. Lazy me...

So, in short, the code actually supports what you propose...but
algorithms do not use it,

Let me know if you have questions

2015-07-15 16:01 GMT+02:00 Arnaud Morvan <[email protected]>:
Thanks for your reponse,

This is functionnal but seems difficult to maintain.
How to verify that every algorithm is translated in each language ?

Why don't add in each algorithm a "title" property

     self.name = '...'             # used by command line
     self.title = self.tr('...')     # used by toolbox

eventually with a fallback on self.name for compatibility with
algorithms from external plugins.
Like this we could use the normal workflow with transifex.

Does the groups have another use than toobox item text ? can we replace :
     self.group = '...'
by
     self.group = self.tr('...')

Arnaud

Le 15/07/2015 12:26, Victor Olaya a écrit :
Arnaud

I added a mechanism for defining alternative names for algorithms.
This allows to provide more informative names than the original ones,
without having to break the cmd interface.

The name replacements are stored in this file:


https://github.com/qgis/QGIS/blob/master/python/plugins/processing/gui/algnames.txt

If the algorithm is listed there, the alternative name is use.
Otherwise, the original name is used.

Maybe we could have several files like that (algnames_fr.txt,
algnames_es.txt, etc), and just use the one corresponding to the
current language. That would be a very easy solution to implement and
very practical for all translators. It's differnet from how
translation is done now, but I think it will be better for Processing,
to be able to rename algorithms without changing their commandline
name

Let me know what you think about this

Cheers



2015-07-15 11:16 GMT+02:00 Arnaud Morvan <[email protected]>:
Hi,

In processing algorithms, parameters names are translatable (and
completely
translated in french),
but algorithm names and groups couldn't be translated because processing
commandline interface use them in english.
On the other side, it would be good for users to get algorithm names
translated inside toolbox.

Has someone begin to work on this or an idea about how to get names
translated inside toolbox.

Maybe we could help on this ?

Best regards

Arnaud
_______________________________________________
Qgis-developer mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-developer



_______________________________________________
Qgis-developer mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-developer
_______________________________________________
Qgis-developer mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-developer




_______________________________________________
Qgis-developer mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to