## I18n You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object][1] ```js const editor = grapesjs.init({ i18n: { locale: 'en', localeFallback: 'en', messages: { it: { hello: 'Ciao', ... }, ... } } }) ``` Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance ```js const i18n = editor.I18n; ``` ## Available Events * `i18n:add` New set of messages is added. ```javascript editor.on('i18n:add', (messages) => { ... }); ``` * `i18n:update` The set of messages is updated. ```javascript editor.on('i18n:update', (messages) => { ... }); ``` * `i18n:locale` Locale changed. ```javascript editor.on('i18n:locale', ({ value, valuePrev }) => { ... }); ``` ## setLocale Update current locale ### Parameters * `locale` **[String][2]** Locale value ### Examples ```javascript i18n.setLocale('it'); ``` Returns **this** ## getLocale Get current locale Returns **[String][2]** Current locale value ## getMessages Get all messages ### Parameters * `lang` **[String][2]?** Specify the language of messages to return * `opts` **[Object][3]?** Options (optional, default `{}`) * `opts.debug` **[Boolean][4]?** Show warnings in case of missing language ### Examples ```javascript i18n.getMessages(); // -> { en: { hello: '...' }, ... } i18n.getMessages('en'); // -> { hello: '...' } ``` Returns **[Object][3]** ## setMessages Set new set of messages ### Parameters * `msg` **[Object][3]** Set of messages ### Examples ```javascript i18n.getMessages(); // -> { en: { msg1: 'Msg 1', msg2: 'Msg 2', } } i18n.setMessages({ en: { msg2: 'Msg 2 up', msg3: 'Msg 3', } }); // Set replaced i18n.getMessages(); // -> { en: { msg2: 'Msg 2 up', msg3: 'Msg 3', } } ``` Returns **this** ## addMessages Update messages ### Parameters * `msg` **[Object][3]** Set of messages to add ### Examples ```javascript i18n.getMessages(); // -> { en: { msg1: 'Msg 1', msg2: 'Msg 2', } } i18n.addMessages({ en: { msg2: 'Msg 2 up', msg3: 'Msg 3', } }); // Set updated i18n.getMessages(); // -> { en: { msg1: 'Msg 1', msg2: 'Msg 2 up', msg3: 'Msg 3', } } ``` Returns **this** ## t Translate the locale message ### Parameters * `key` **[String][2]** Label to translate * `opts` **[Object][3]?** Options for the translation (optional, default `{}`) * `opts.params` **[Object][3]?** Params for the translation * `opts.debug` **[Boolean][4]?** Show warnings in case of missing resources ### Examples ```javascript obj.setMessages({ en: { msg: 'Msg', msg2: 'Msg {test}'}, it: { msg2: 'Msg {test} it'}, }); obj.t('msg'); // -> outputs `Msg` obj.t('msg2', { params: { test: 'hello' } }); // use params // -> outputs `Msg hello` obj.t('msg2', { l: 'it', params: { test: 'hello' } }); // custom local // -> outputs `Msg hello it` ``` Returns **[String][2]** ## getConfig Get configuration object Returns **[Object][3]** [1]: https://github.com/GrapesJS/grapesjs/blob/master/src/i18n/config.ts [2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String [3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object [4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean