@ornery/web-components 1.1.7 → 1.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/i18n.js +24 -16
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ornery/web-components",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.8",
|
|
4
4
|
"description": "WebComponents html loader and optional runtime mixins to enable creation of custom HTML elements using es6 template literal syntax in *.html files.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
package/src/i18n.js
CHANGED
|
@@ -80,8 +80,8 @@ const I18n = new (class {
|
|
|
80
80
|
getLang() {
|
|
81
81
|
return DataManager.get('i18n-language') || '';
|
|
82
82
|
}
|
|
83
|
-
getRootLang() {
|
|
84
|
-
return this.getLang().split(this._altLangRegex)[0];
|
|
83
|
+
getRootLang(lang) {
|
|
84
|
+
return (lang || this.getLang()).split(this._altLangRegex)[0];
|
|
85
85
|
}
|
|
86
86
|
/**
|
|
87
87
|
* @memberof I18n
|
|
@@ -110,10 +110,9 @@ const I18n = new (class {
|
|
|
110
110
|
return allMessages;
|
|
111
111
|
} else {
|
|
112
112
|
lang = lang || this.getLang();
|
|
113
|
-
const rootLang = lang
|
|
114
|
-
? lang.split(this._altLangRegex)[0]
|
|
115
|
-
: this.getRootLang();
|
|
113
|
+
const rootLang = this.getRootLang(lang);
|
|
116
114
|
return {
|
|
115
|
+
...this._fallbackMessages,
|
|
117
116
|
...allMessages[rootLang],
|
|
118
117
|
...allMessages[lang],
|
|
119
118
|
};
|
|
@@ -137,7 +136,9 @@ const I18n = new (class {
|
|
|
137
136
|
* })
|
|
138
137
|
*/
|
|
139
138
|
setMessages(values) {
|
|
140
|
-
|
|
139
|
+
const response = DataManager.set('i18n-messages', values);
|
|
140
|
+
this.setFallbackMessages();
|
|
141
|
+
return response;
|
|
141
142
|
}
|
|
142
143
|
/**
|
|
143
144
|
* @memberof I18n
|
|
@@ -159,22 +160,28 @@ const I18n = new (class {
|
|
|
159
160
|
lang = this.getLang();
|
|
160
161
|
}
|
|
161
162
|
lang = lang.toLowerCase();
|
|
162
|
-
const rootLang =
|
|
163
|
+
const rootLang = this.getRootLang(lang);
|
|
163
164
|
const existing = this.getMessages('all');
|
|
164
|
-
existing[rootLang] = {
|
|
165
|
-
...(existing[rootLang] || {}),
|
|
166
|
-
...newStrings,
|
|
167
|
-
};
|
|
168
165
|
existing[lang] = {
|
|
169
166
|
...(existing[lang] || {}),
|
|
170
167
|
...newStrings,
|
|
171
168
|
};
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
169
|
+
if (rootLang !== lang) {
|
|
170
|
+
existing[rootLang] = {
|
|
171
|
+
...(existing[rootLang] || {}),
|
|
172
|
+
...newStrings,
|
|
173
|
+
};
|
|
177
174
|
}
|
|
175
|
+
this.setMessages(existing);
|
|
176
|
+
this.setFallbackMessages();
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
setFallbackMessages(){
|
|
180
|
+
const rootLang = this.getRootLang(this._defaultLang);
|
|
181
|
+
this._fallbackMessages = {
|
|
182
|
+
...this.getMessages(this._defaultLang),
|
|
183
|
+
...this.getMessages(rootLang)
|
|
184
|
+
};
|
|
178
185
|
}
|
|
179
186
|
|
|
180
187
|
/**
|
|
@@ -331,6 +338,7 @@ if (
|
|
|
331
338
|
typeof customElements !== 'undefined' &&
|
|
332
339
|
!customElements.get('i18n-message')
|
|
333
340
|
) {
|
|
341
|
+
window.I18n = I18n;
|
|
334
342
|
customElements.define('i18n-message', withContext(I18nMessage));
|
|
335
343
|
}
|
|
336
344
|
|