Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BUG: I18n functionality #3622

Closed
1 task
ronaldohoch opened this issue Jul 14, 2021 · 4 comments
Closed
1 task

BUG: I18n functionality #3622

ronaldohoch opened this issue Jul 14, 2021 · 4 comments

Comments

@ronaldohoch
Copy link

ronaldohoch commented Jul 14, 2021

Version: latest

Are you able to reproduce the bug from the demo?

  • [] Yes
  • No

What is the expected behavior?
to editor.I18n.setLocale("es") work in runtime.

Describe the bug detailed
I don't know if it's a bug or it's not supposed to work this way, also, i don't know backbone enough to know if it's possible, but, when use editor.I18n.setLocale("es") on run time, it doesn't change the labels.

What is the current behavior?
It's just set the locale internally, but not change the labels at runtime.

Describe the bug detailed

  • I created a new plugin to pass the localization files
import cookie from './cookie';

import pt from './i18n/pt';
import es from './i18n/es';

export default (editor, opts = {}) => {
  let login_language = cookie.get("login_language");
  let language = "";
  switch(login_language){
    case "en_US": language="en"; break;
    case "es_AR": language="es"; break;
    default: case "pt_BR": language="pt"; break;
  }

  const options = { ...{
    i18n: {},
    // default options
  },  ...opts };

  var I18nManager = editor.I18n;

  // Load i18n files
  I18nManager && I18nManager.addMessages({
    ...options.i18n,
    pt,
    es
  });
  
  //change editor localization
  I18nManager.setLocale(language);
};
  • On first load, got the current locale, set right on portuguese.
  • image
  • On set to spanish, it keeps the portuguese on first run:
  • image
  • If i change the tab, it set the messages to spanish:
  • image
  • And if i set it to en, we have 3 language set:
  • image
  • Here the 3 languages
  • image

Of course, the plugin works, if user is es, pt or en, it's setup properly.
But when we will set up a new editor with plugins, we can't change the labels, or i don't know how 🤔 (This is why i've created this PR: GrapesJS/blocks-basic#38)

@artf
Copy link
Member

artf commented Jul 28, 2021

Yeah, unfortunately, at the moment the UI (once rendered) is not updating on locale changes, so you would need to rerender the editor.

@ronaldohoch
Copy link
Author

Well, i don't know if backbone have template binding, so i'll close for a while..

@leonardolima99
Copy link

Yeah, unfortunately, at the moment the UI (once rendered) is not updating on locale changes, so you would need to rerender the editor.

Has this not been solved yet? I tried to use editor.render(), it works, but it duplicates the panels...

@padcom
Copy link
Contributor

padcom commented Oct 15, 2024

This issue is not solved. It needs to be reopened. Setting the locale only works when initializing the editor.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants