asab_webui_components 25.4.1 → 25.4.2

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/dist/index.js CHANGED
@@ -280,6 +280,12 @@ Object.defineProperty(exports, "timeToStringRelative", {
280
280
  return _timeToStringRelative.timeToStringRelative;
281
281
  }
282
282
  });
283
+ Object.defineProperty(exports, "translateFromContent", {
284
+ enumerable: true,
285
+ get: function get() {
286
+ return _translateFromContent.translateFromContent;
287
+ }
288
+ });
283
289
  Object.defineProperty(exports, "useDateFNSLocale", {
284
290
  enumerable: true,
285
291
  get: function get() {
@@ -335,6 +341,7 @@ var _classifyIPAddress = require("./utils/classifyIPAddress.js");
335
341
  var _itemExtensionHandler = require("./utils/itemExtensionHandler.js");
336
342
  var _removeFileExtension = require("./utils/removeFileExtension.js");
337
343
  var _deepMerge = require("./utils/deepMerge.js");
344
+ var _translateFromContent = require("./utils/translateFromContent.js");
338
345
  var _problemMarkers = require("./utils/monaco/problemMarkers.js");
339
346
  var _ResultCard = require("./components/ResultCard/ResultCard");
340
347
  var _AdvancedCard = require("./components/AdvancedCard/AdvancedCard.js");
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.translateFromContent = translateFromContent;
8
+ var _i18next = _interopRequireDefault(require("i18next"));
9
+ // Translates content based on the current language setting
10
+ // Handles translation of content objects that contain language-specific text
11
+ function translateFromContent(content) {
12
+ var currentLang = (_i18next.default === null || _i18next.default === void 0 ? void 0 : _i18next.default.language) || 'c';
13
+ var errorMessage = _i18next.default.t("General|Content cannot be translated - invalid format");
14
+
15
+ // If the content is a string, return it as-is
16
+ if (typeof content === 'string') {
17
+ return content;
18
+ }
19
+
20
+ // If content is null, not an object, or is an array, return error message
21
+ if (!content || typeof content !== 'object' || Array.isArray(content)) {
22
+ console.warn(errorMessage + " " + content);
23
+ return errorMessage;
24
+ }
25
+
26
+ // Normalize keys to lowercase
27
+ var normalizedKeys = Object.keys(content).reduce((acc, key) => {
28
+ acc[key.toLowerCase()] = content[key];
29
+ return acc;
30
+ }, {});
31
+
32
+ // If the normalizedKeys object is empty, return empty string
33
+ if (Object.keys(normalizedKeys).length === 0) {
34
+ console.warn('Content for translation is empty');
35
+ return '';
36
+ }
37
+
38
+ /* Try to get text in current language
39
+ if not found try fallback 'c' language
40
+ otherwise return error message */
41
+ if (typeof normalizedKeys[currentLang] === 'string') {
42
+ return normalizedKeys[currentLang];
43
+ }
44
+ if (typeof normalizedKeys['c'] === 'string') {
45
+ return normalizedKeys['c'];
46
+ }
47
+ console.warn(content);
48
+ return errorMessage;
49
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "asab_webui_components",
3
- "version": "25.4.1",
3
+ "version": "25.4.2",
4
4
  "license": "BSD-3-Clause",
5
5
  "description": "TeskaLabs ASAB WebUI Components Library",
6
6
  "contributors": [