Webix Jet - Access/alter locales folder?

Hello,

I'm using the Locale Plugin in Webix Jet and trying to make a dynamic webapp and store locale information on the server. Is there a way to access the locale/en.js file and alter the information right before the app has rendered?

Tagged:

Comments

  • Yep, you can place code like next inside of app's constructor

       var locale = app.getService("locale");
    
       service.polyglot = new Polyglot({ phrases:data });
       services.polyglot.locale(lang);
       service._ = service.polyglot.t.bind(service.polyglot);
    
       app.refresh();
    

    where

    • data - locale json
    • lang - name of language
  • Beautiful... This was exactly what I was looking for. Thanks again!

  • @maksim what is "service" & "services" in your example? I was able to get it working by doing:

    const langs = this.app.getService("locale");
    langs.polyglot = new Polyglot({ phrases:{"Viewing User:":'english'} });
                  langs.polyglot.locale('en');
                  langs._ = langs.polyglot.t.bind(langs.polyglot);
    

    Also, I'm trying to load the locale data when the app initially loads, so in "myapp.js". But I'm running into two issues:

    1. The locale service requires two args when being defined (plugin name and the locale -'es/en').
    2. Polyglot needs locale to be defined in order to be attache phrases.

    I try the following code...

    //sources/myapp.js
      app.use(plugins.Locale,{lang:'es'});
          let locale = this.app.getService("locale");
          locale.polyglot = new Polyglot({ phrases:{'Go': 'shit'}});
          locale.polyglot.locale('es');
          locale._ = locale.polyglot.t.bind(locale.polyglot);
          app.refresh();
    

    ... before and after app.render(), but neither work. Is there a way to load locales data in "myapp.js"?

    Thanks

  • UPDATE: I figured this out... always after asking.

    //sources/myapp.js
    // prior to app.render();
       let polyglot = new Polyglot();
          polyglot.locale('es');
          app.use(plugins.Locale,{lang:'es'});
          let locale = app.getService("locale");
          locale._ = locale.polyglot.t.bind(locale.polyglot);
          locale.polyglot.phrases = {'Go': 'ir'};
    
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!