Hey Chris,

How you described it is pretty much how I planned on implementing plugin 
dictionaries.

You can actually attach the plugin's dictionary to 
cloudStack.plugins.[pluginName], for example 
cloudStack.plugins.testPlugin.dictionary, and only attach the dictionary JS 
that is set to your locale -- there is a global variable in the JS which 
indicates what the current locale is. Alternatively, plugin handling routine 
can attach the dictionary directly to the object passed to your plugin's 
function (i.e., 'plugin.dictionary' from cloudStack.plugins.myPlugin(plugin) {} 
function), so you won't have to worry about namespace issues.

If you've already written code, then feel free to submit a patch via 
reviews.apache.org and I can take a look at it.

-Brian

-----Original Message-----
From: Chip Childers [mailto:chip.child...@sungard.com] 
Sent: Tuesday, June 18, 2013 9:31 AM
To: dev@cloudstack.apache.org
Cc: Brian Federle; Pranav Saxena; Sonny Chhen; Jessica Wang
Subject: Re: UI Plugin Internationalization

Adding some UI focused folks to the CC.

On Tue, Jun 18, 2013 at 03:15:53PM +0000, SuichII, Christopher wrote:
> Sure!
> 
> What I'd like: As someone developing a UI plugin, I'd like to be able to 
> contribute my own internationalized messages/labels/etc. to the JS 
> dictionary. Currently, this can be done by shoving them all in to the 
> dictionary when your plugin is initialized, but it is not very pretty - 
> requiring you to determine the locale and require the messages file yourself.
> 
> So a little preface. As far as I can tell, all UI plugin loading is done in 
> JS - that is, not at all in JSPs. So, any UI plugin internationalization 
> needs to be done in JS, or some of the UI plugin loading needs to be done in 
> JSPs (I'm gonna bet the former is preferred).
> 
> My idea was to add some JS to dictionary.jsp (whose JS is executed after UI 
> plugins are loaded). Here we would take the locale from the JSP and require a 
> JS file in plugins/<plugin_name>/dictionary/ depending on the locale.
> 
> In my current prototype, the JS files holding the internationalized strings 
> just store everything in a hash in the cloudStack variable, like: 
> cloudStack.plugin_dictionaries.<plugin_name>. I've done this because (I'm new 
> to requirejs and) I am yet to find a way to simply return the hash or have 
> the hash sent as a parameter to a callback of require(…).
> 
> Does anyone with more requirejs experience know how we could accomplish this 
> more elegantly?
> 
> I'm also open to suggestions on completely different designs. =)
> 
> -Chris
> 
> On Jun 18, 2013, at 10:55 AM, Chip Childers 
> <chip.child...@sungard.com>
>  wrote:
> 
> > On Tue, Jun 18, 2013 at 12:18:16PM +0000, SuichII, Christopher wrote:
> >> I've got some ideas on how to implement a system for allowing ui plugins 
> >> to contribute internationalized strings to the ui dictionary, but I'd like 
> >> to run things by a committer. Is there someone(s) who would like to talk 
> >> offline (or keep replying here) about this feature?
> >> 
> >> Thanks,
> >> Chris
> > 
> > The best method to collaborate on the project is to use the list to 
> > build up the feature proposal...  so explain away here please!
> 
> 

Reply via email to