UNPKG

1.46 kBJavaScriptView Raw
1var Messages = require('./messages');
2
3require('./lang/en');
4
5var require_method = require;
6
7var container = {
8
9 messages: {},
10
11 /**
12 * Set messages for language
13 *
14 * @param {string} lang
15 * @param {object} rawMessages
16 * @return {void}
17 */
18 _set: function(lang, rawMessages) {
19 this.messages[lang] = rawMessages;
20 },
21
22 /**
23 * Set message for given language's rule.
24 *
25 * @param {string} lang
26 * @param {string} attribute
27 * @param {string|object} message
28 * @return {void}
29 */
30 _setRuleMessage: function(lang, attribute, message) {
31 this._load(lang);
32 if (message === undefined) {
33 message = this.messages[lang].def;
34 }
35
36 this.messages[lang][attribute] = message;
37 },
38
39 /**
40 * Load messages (if not already loaded)
41 *
42 * @param {string} lang
43 * @return {void}
44 */
45 _load: function(lang) {
46 if (!this.messages[lang]) {
47 try {
48 var rawMessages = require_method('./lang/' + lang);
49 this._set(lang, rawMessages);
50 } catch (e) {}
51 }
52 },
53
54 /**
55 * Get raw messages for language
56 *
57 * @param {string} lang
58 * @return {object}
59 */
60 _get: function(lang) {
61 this._load(lang);
62 return this.messages[lang];
63 },
64
65 /**
66 * Make messages for given language
67 *
68 * @param {string} lang
69 * @return {Messages}
70 */
71 _make: function(lang) {
72 this._load(lang);
73 return new Messages(lang, this.messages[lang]);
74 }
75
76};
77
78module.exports = container;