Hello everybody,

I'm trying to figure out the best method for internationalization/localization 
of MediaWiki Gadgets. There are several approaches implemented in the different 
available gadgets, but none of them seem to use MediaWikis client side message 
system. I want to use something like

mw.message('my-gadget-some-key').plain();

But this only works with message keys that are available on the client side, 
based on the 'messages' field of a server side module definition 
($wgResourceModules). The clientside

mw.loader.implement( moduleName, scripts, styles, messages );

has a parameter for a 'messages' config object. But it does not load the 
translation texts for the keys automatically. Actually it expects a JavaScript 
object that contains keys _and_ values [1]. I've tried whether the values get 
overridden when a translation on the MediaWiki-namespace is available, but they 
don't seem to. Am I missing something important? Can you recommend a method for 
I18N in a gadget?

Just for the record: I've been experimenting with keeping the messages in 
subpages ("MediaWiki:Gadget.-/de.js") in JSON format [2] and loading them on 
runtime via AJAX [3]. I think  this has some beauty because it's close to what 
MediaWiki does on the server side. Unfortunately in this case I'll have to 
implement a language fallback [4] by myself. Any thoughts or hints?

[1] https://www.mediawiki.org/wiki/ResourceLoader/Features#Response
[2] 
https://www.mediawiki.org/w/index.php?title=User%3AOsnard%2FGadget-Test%2Fde.js&action=raw&ctype=text%2Fjavascript
[3] https://www.mediawiki.org/wiki/User:Osnard/Gadget-Test.js
[4] 
https://www.mediawiki.org/wiki/Localisation#mediaviewer/File:MediaWiki_fallback_chains.svg

--

Robert Vogel
Softwareentwicklung



Hallo Welt! - Medienwerkstatt GmbH
Residenzstraße 2
93047 Regensburg

Tel.  +49 (0) 941 - 66 0 80-198
Fax   +49 (0) 941 - 66 0 80-189

www.hallowelt.biz
vo...@hallowelt.biz


Sitz: Regensburg
Amtsgericht: Regensburg
Handelsregister: HRB 10467
E.USt.Nr.: DE 253050833
Geschäftsführer: Anja Ebersbach, Markus Glaser, Dr. Richard Heigl, Radovan 
Kubani


_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to