@iobroker/adapter-react-v5 3.1.20 → 3.1.21
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/Components/ObjectBrowser.js +1 -1
- package/Components/ObjectBrowser.js.map +1 -1
- package/README.md +3 -0
- package/i18n.js +57 -6
- package/i18n.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -642,6 +642,9 @@ If you still have questions, try to find an answer [here](https://mui.com/guides
|
|
|
642
642
|
-->
|
|
643
643
|
|
|
644
644
|
## Changelog
|
|
645
|
+
### 3.1.21 (2022-07-22)
|
|
646
|
+
* (bluefox) Added i18n tools for development
|
|
647
|
+
|
|
645
648
|
### 3.1.20 (2022-07-14)
|
|
646
649
|
* (bluefox) Allowed to show select dialog with the expert mode enabled
|
|
647
650
|
|
package/i18n.js
CHANGED
|
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = void 0;
|
|
9
9
|
|
|
10
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
|
+
|
|
10
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
13
|
|
|
12
14
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
@@ -36,6 +38,11 @@ var I18n = /*#__PURE__*/function () {
|
|
|
36
38
|
* @type {{ [lang in ioBroker.Languages]?: Record<string, string>; }}
|
|
37
39
|
*/
|
|
38
40
|
|
|
41
|
+
/**
|
|
42
|
+
* List of unknown translations during development.
|
|
43
|
+
* @type {string[]}
|
|
44
|
+
*/
|
|
45
|
+
|
|
39
46
|
/**
|
|
40
47
|
* The currently displayed language.
|
|
41
48
|
* @type {ioBroker.Languages}
|
|
@@ -141,7 +148,11 @@ var I18n = /*#__PURE__*/function () {
|
|
|
141
148
|
if (w) {
|
|
142
149
|
word = w;
|
|
143
150
|
} else {
|
|
144
|
-
I18n.
|
|
151
|
+
if (!I18n.unknownTranslations.includes(word)) {
|
|
152
|
+
I18n.unknownTranslations.push(word);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
!I18n._disableWarning && console.log("Translate: ".concat(word));
|
|
145
156
|
}
|
|
146
157
|
}
|
|
147
158
|
|
|
@@ -156,6 +167,42 @@ var I18n = /*#__PURE__*/function () {
|
|
|
156
167
|
|
|
157
168
|
return word;
|
|
158
169
|
}
|
|
170
|
+
/**
|
|
171
|
+
* Show non-translated words
|
|
172
|
+
* Required during development
|
|
173
|
+
* @param {string | RegExp} filter filter words
|
|
174
|
+
*/
|
|
175
|
+
|
|
176
|
+
}, {
|
|
177
|
+
key: "i18nShow",
|
|
178
|
+
value: function i18nShow(filter) {
|
|
179
|
+
/**
|
|
180
|
+
* List words with their translations.
|
|
181
|
+
* @type {Record<string, string>}
|
|
182
|
+
*/
|
|
183
|
+
var result = {};
|
|
184
|
+
|
|
185
|
+
if (!filter) {
|
|
186
|
+
I18n.unknownTranslations.forEach(function (word) {
|
|
187
|
+
result[word] = word;
|
|
188
|
+
});
|
|
189
|
+
console.log(JSON.stringify(result, null, 2));
|
|
190
|
+
} else if (typeof filter === 'string') {
|
|
191
|
+
I18n.unknownTranslations.forEach(function (word) {
|
|
192
|
+
if (word.startsWith(filter)) {
|
|
193
|
+
result[word] = word.replace(filter, '');
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
console.log(JSON.stringify(result, null, 2));
|
|
197
|
+
} else if ((0, _typeof2["default"])(filter) === 'object') {
|
|
198
|
+
I18n.unknownTranslations.forEach(function (word) {
|
|
199
|
+
if (filter.test(word)) {
|
|
200
|
+
result[word] = word;
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
console.log(JSON.stringify(result, null, 2));
|
|
204
|
+
}
|
|
205
|
+
}
|
|
159
206
|
/**
|
|
160
207
|
* Disable warning about non-translated words
|
|
161
208
|
* Required during development
|
|
@@ -169,7 +216,15 @@ var I18n = /*#__PURE__*/function () {
|
|
|
169
216
|
}
|
|
170
217
|
}]);
|
|
171
218
|
return I18n;
|
|
172
|
-
}();
|
|
219
|
+
}(); // install global handlers
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
(0, _defineProperty2["default"])(I18n, "translations", {});
|
|
223
|
+
(0, _defineProperty2["default"])(I18n, "unknownTranslations", []);
|
|
224
|
+
(0, _defineProperty2["default"])(I18n, "lang", window.sysLang || 'en');
|
|
225
|
+
(0, _defineProperty2["default"])(I18n, "_disableWarning", false);
|
|
226
|
+
window.i18nShow = I18n.i18nShow;
|
|
227
|
+
window.i18nDisableWarning = I18n.disableWarning;
|
|
173
228
|
/*I18n.translations = {
|
|
174
229
|
'en': require('./i18n/en'),
|
|
175
230
|
'ru': require('./i18n/ru'),
|
|
@@ -178,10 +233,6 @@ var I18n = /*#__PURE__*/function () {
|
|
|
178
233
|
I18n.fallbacks = true;
|
|
179
234
|
I18n.t = function () {};*/
|
|
180
235
|
|
|
181
|
-
|
|
182
|
-
(0, _defineProperty2["default"])(I18n, "translations", {});
|
|
183
|
-
(0, _defineProperty2["default"])(I18n, "lang", window.sysLang || 'en');
|
|
184
|
-
(0, _defineProperty2["default"])(I18n, "_disableWarning", false);
|
|
185
236
|
var _default = I18n;
|
|
186
237
|
exports["default"] = _default;
|
|
187
238
|
//# sourceMappingURL=i18n.js.map
|
package/i18n.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","names":["I18n","lang","words","en","de","ru","Object","keys","forEach","translations","assign","word","console","warn","e","error","translation","w","_disableWarning","log","args","arg","replace","disable","window","sysLang"],"sources":["i18n.js"],"sourcesContent":["/***\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n ***/\n\n /**\n * Translation string management.\n */\nclass I18n {\n /**\n * List of all languages with their translations.\n * @type {{ [lang in ioBroker.Languages]?: Record<string, string>; }}\n */\n static translations = {};\n\n /**\n * The currently displayed language.\n * @type {ioBroker.Languages}\n */\n static lang = window.sysLang || 'en';\n\n static _disableWarning = false;\n\n /**\n * Set the language to display.\n * @param {ioBroker.Languages} lang\n */\n static setLanguage(lang) {\n if (lang) {\n I18n.lang = lang;\n }\n }\n\n /**\n * Add translations\n * User can provide two types of structures:\n * - {\"word1\": \"translated word1\", \"word2\": \"translated word2\"}, but in this case the lang must be provided\n * - {\"word1\": {\"en\": \"translated en word1\", \"de\": \"translated de word1\"}, \"word2\": {\"en\": \"translated en word2\", \"de\": \"translated de word2\"}}, but no lang must be provided\n * @param {object} words additional words for specific language\n * @param {ioBroker.Languages} lang\n */\n static extendTranslations(words, lang) {\n try {\n if (!lang) {\n if (words.en && words.de && words.ru) {\n Object.keys(words).forEach(lang => {\n I18n.translations[lang] = I18n.translations[lang] || {};\n Object.assign(I18n.translations[lang], words[lang]);\n });\n } else {\n Object.keys(words).forEach(word => {\n Object.keys(words[word]).forEach(lang => {\n if (!I18n.translations[lang]) {\n console.warn(`Used unknown language: ${lang}`);\n }\n if (!I18n.translations[lang][word]) {\n I18n.translations[lang][word] = words[word][lang];\n } else if (I18n.translations[lang][word] !== words[word][lang]) {\n console.warn(`Translation for word \"${word}\" in \"${lang}\" was ignored: existing = \"${I18n.translations[lang][word]}\", new = ${words[word][lang]}`);\n }\n });\n });\n }\n } else {\n if (!I18n.translations[lang]) {\n console.warn(`Used unknown language: ${lang}`);\n }\n I18n.translations[lang] = I18n.translations[lang] || {};\n Object.keys(words)\n .forEach(word => {\n if (!I18n.translations[lang][word]) {\n I18n.translations[lang][word] = words[word];\n } else if (I18n.translations[lang][word] !== words[word]) {\n console.warn(`Translation for word \"${word}\" in \"${lang}\" was ignored: existing = \"${I18n.translations[lang][word]}\", new = ${words[word]}`);\n }\n });\n }\n } catch (e) {\n console.error(`Cannot apply translations: ${e}`);\n }\n }\n\n /**\n * Sets all translations (in all languages).\n * @param {{ [lang in ioBroker.Languages]?: Record<string, string>; }} translations\n */\n static setTranslations(translations) {\n if (translations) {\n I18n.translations = translations;\n }\n }\n\n /**\n * Get the currently chosen language.\n * @returns {ioBroker.Languages} The current language.\n */\n static getLanguage() {\n return I18n.lang;\n }\n\n /**\n * Translate the given string to the selected language.\n * @param {string} word The (key) word to look up the string.\n * @param {string[]} args Optional arguments which will replace the first (second, third, ...) occurrences of %s\n */\n static t(word, ...args) {\n const translation = I18n.translations[I18n.lang];\n if (translation) {\n const w = translation[word];\n if (w) {\n word = w;\n } else {\n I18n._disableWarning && console.log(`Translate: ${word}`);\n }\n }\n for (const arg of args) {\n word = word.replace('%s', arg);\n }\n return word;\n }\n\n /**\n * Disable warning about non-translated words\n * Required during development\n * @param {boolean} disable Do the warning should be disabled\n */\n static disableWarning(disable) {\n I18n._disableWarning = !!disable;\n }\n}\n\n/*I18n.translations = {\n 'en': require('./i18n/en'),\n 'ru': require('./i18n/ru'),\n 'de': require('./i18n/de'),\n};\nI18n.fallbacks = true;\nI18n.t = function () {};*/\n\nexport default I18n;"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"i18n.js","names":["I18n","lang","words","en","de","ru","Object","keys","forEach","translations","assign","word","console","warn","e","error","translation","w","unknownTranslations","includes","push","_disableWarning","log","args","arg","replace","filter","result","JSON","stringify","startsWith","test","disable","window","sysLang","i18nShow","i18nDisableWarning","disableWarning"],"sources":["i18n.js"],"sourcesContent":["/***\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n ***/\n\n /**\n * Translation string management.\n */\nclass I18n {\n /**\n * List of all languages with their translations.\n * @type {{ [lang in ioBroker.Languages]?: Record<string, string>; }}\n */\n static translations = {};\n\n /**\n * List of unknown translations during development.\n * @type {string[]}\n */\n static unknownTranslations = [];\n\n /**\n * The currently displayed language.\n * @type {ioBroker.Languages}\n */\n static lang = window.sysLang || 'en';\n\n static _disableWarning = false;\n\n /**\n * Set the language to display.\n * @param {ioBroker.Languages} lang\n */\n static setLanguage(lang) {\n if (lang) {\n I18n.lang = lang;\n }\n }\n\n /**\n * Add translations\n * User can provide two types of structures:\n * - {\"word1\": \"translated word1\", \"word2\": \"translated word2\"}, but in this case the lang must be provided\n * - {\"word1\": {\"en\": \"translated en word1\", \"de\": \"translated de word1\"}, \"word2\": {\"en\": \"translated en word2\", \"de\": \"translated de word2\"}}, but no lang must be provided\n * @param {object} words additional words for specific language\n * @param {ioBroker.Languages} lang\n */\n static extendTranslations(words, lang) {\n try {\n if (!lang) {\n if (words.en && words.de && words.ru) {\n Object.keys(words).forEach(lang => {\n I18n.translations[lang] = I18n.translations[lang] || {};\n Object.assign(I18n.translations[lang], words[lang]);\n });\n } else {\n Object.keys(words).forEach(word => {\n Object.keys(words[word]).forEach(lang => {\n if (!I18n.translations[lang]) {\n console.warn(`Used unknown language: ${lang}`);\n }\n if (!I18n.translations[lang][word]) {\n I18n.translations[lang][word] = words[word][lang];\n } else if (I18n.translations[lang][word] !== words[word][lang]) {\n console.warn(`Translation for word \"${word}\" in \"${lang}\" was ignored: existing = \"${I18n.translations[lang][word]}\", new = ${words[word][lang]}`);\n }\n });\n });\n }\n } else {\n if (!I18n.translations[lang]) {\n console.warn(`Used unknown language: ${lang}`);\n }\n I18n.translations[lang] = I18n.translations[lang] || {};\n Object.keys(words)\n .forEach(word => {\n if (!I18n.translations[lang][word]) {\n I18n.translations[lang][word] = words[word];\n } else if (I18n.translations[lang][word] !== words[word]) {\n console.warn(`Translation for word \"${word}\" in \"${lang}\" was ignored: existing = \"${I18n.translations[lang][word]}\", new = ${words[word]}`);\n }\n });\n }\n } catch (e) {\n console.error(`Cannot apply translations: ${e}`);\n }\n }\n\n /**\n * Sets all translations (in all languages).\n * @param {{ [lang in ioBroker.Languages]?: Record<string, string>; }} translations\n */\n static setTranslations(translations) {\n if (translations) {\n I18n.translations = translations;\n }\n }\n\n /**\n * Get the currently chosen language.\n * @returns {ioBroker.Languages} The current language.\n */\n static getLanguage() {\n return I18n.lang;\n }\n\n /**\n * Translate the given string to the selected language.\n * @param {string} word The (key) word to look up the string.\n * @param {string[]} args Optional arguments which will replace the first (second, third, ...) occurrences of %s\n */\n static t(word, ...args) {\n const translation = I18n.translations[I18n.lang];\n if (translation) {\n const w = translation[word];\n if (w) {\n word = w;\n } else {\n if (!I18n.unknownTranslations.includes(word)) {\n I18n.unknownTranslations.push(word);\n }\n\n !I18n._disableWarning && console.log(`Translate: ${word}`);\n }\n }\n for (const arg of args) {\n word = word.replace('%s', arg);\n }\n return word;\n }\n\n /**\n * Show non-translated words\n * Required during development\n * @param {string | RegExp} filter filter words\n */\n static i18nShow(filter) {\n /**\n * List words with their translations.\n * @type {Record<string, string>}\n */\n const result = {};\n if (!filter) {\n I18n.unknownTranslations.forEach(word => {\n result[word] = word;\n });\n console.log(JSON.stringify(result, null, 2));\n } else if (typeof filter === 'string') {\n I18n.unknownTranslations.forEach(word => {\n if (word.startsWith(filter)) {\n result[word] = word.replace(filter, '');\n }\n });\n console.log(JSON.stringify(result, null, 2));\n } else if (typeof filter === 'object') {\n I18n.unknownTranslations.forEach(word => {\n if (filter.test(word)) {\n result[word] = word;\n }\n });\n console.log(JSON.stringify(result, null, 2));\n }\n }\n\n /**\n * Disable warning about non-translated words\n * Required during development\n * @param {boolean} disable Do the warning should be disabled\n */\n static disableWarning(disable) {\n I18n._disableWarning = !!disable;\n }\n}\n\n// install global handlers\nwindow.i18nShow = I18n.i18nShow;\nwindow.i18nDisableWarning = I18n.disableWarning;\n\n\n/*I18n.translations = {\n 'en': require('./i18n/en'),\n 'ru': require('./i18n/ru'),\n 'de': require('./i18n/de'),\n};\nI18n.fallbacks = true;\nI18n.t = function () {};*/\n\nexport default I18n;"],"mappings":"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"}
|