[Qgis-developer] python plugin translations

Alex Mandel tech_dev at wildintellect.com
Thu Apr 23 23:52:35 EDT 2009


Thanks, that's the answer I as looking for.
I'm going to get some friends started on translating the Metadata editor
while I work on new features.

Thanks,
Alex

Borys Jurgiel wrote:
> Thursday 23 of April 2009 18:32:04 Alex Mandel napisał(a):
> 
>> I asked briefly on IRC the other day if there was a "how to" for
>> including translation strings in a plugin, but no one seemed to know of
>> such a thing. I'd like to allow for translation of my plugin but I'm not
>> sure where to start.
> 
> Hi, 
> I'm not sure if it makes any sense because I'm extremely sleepy, but here is 
> what I've just written to Maxim. Note that I never did it, but it should work.
> 
> ------------------------------------
> 
> There are two different approaches:
> 
> A. For external plugins, you can translate them 'locally': all the translation 
> stuff is inside the plugin directory and it links to qgis in the runtime. It 
> doesn't affect the main qgis .ts files, so the plugin maintainer has to keep an 
> eye on the translations and ask the translators.
> 
> Unfortunately I didn't ever try it.  At the time there is one plugin 
> implementing such internalization. It's Horst's Geoprocessing. Use the code as 
> an example. In general, you need to:
> 
> 1) Pass all strings through the QCoreApplication.translate("context","text") 
> static method. Maybe you can use just self.tr("text") instead, but I'm not sure 
> whether it works in this case - it may be not able to pass the strings to the 
> application. Please pay attention for a text context. It's very hard for 
> translators to deal with text with enigmatic context. Usually the context is 
> just the name of the class where the string is used. So it's very important to 
> give classes a 'translator-friendly' ;) names, like "QgsReprojectRasterDialog" 
> instead of just a "Dialog".
> 
> 2) Create a .pro file and run pylupdate, which catches all the tr() parameters 
> from both .py and .ui files (given in the .pro file) and create all the local 
> .ts files. Translate the .ts files and compile them to .qm
> 
> 3) Init and connect the QTranslator() object - look at the begining of Horst's 
> geoprocessing.py file.
> 
> 
> 
> B. For 'internal' plugins, like fTools placed in svn, it's much simpler. You 
> just need to use the self.tr() or QCoreApplication.translate() methods in .py 
> files. All such strings in .py and .ui will be catched by the 
> qgis/update_ts_files.sh script and put to the main qgis .ts files.
> 
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer



More information about the Qgis-developer mailing list