From b2ad5d81af3cc0062585a42fac0884d10603a47f Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Wed, 30 Oct 2019 19:57:02 +0100 Subject: [PATCH] Add messages methods to i18n --- src/i18n/index.js | 48 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/i18n/index.js b/src/i18n/index.js index 6ce9cc433..fb87967b6 100644 --- a/src/i18n/index.js +++ b/src/i18n/index.js @@ -75,6 +75,54 @@ export default () => { init(opts = {}) { this.em = opts.em; return this; + }, + + /** + * Get all messages + * @param {String} [lang] Specify the language of messages to return + * @returns {Object} + * @example + * i18n.getMessages(); + * // -> { en: { hello: '...' }, ... } + * i18n.getMessages('en'); + * // -> { hello: '...' } + */ + getMessages(lang) { + const { messages } = this.config; + return lang ? messages[lang] : messages; + }, + + /** + * Set new set of messages + * @param {Object} msg Set of messages + * @returns {this} + * @example + * 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', } } + */ + setMessages(msg) { + this.config.messages = msg; + return this; + }, + + /** + * Update messages + * @param {Object} msg Set of messages to add + * @returns {this} + * @example + * 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', } } + */ + addMessages(msg) { + return this; } }; };