codenotch-react 1.0.35 → 1.0.36

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.d.ts CHANGED
@@ -4,7 +4,12 @@ export interface ICodenotchEnv {
4
4
  tenantName?: string;
5
5
  accessToken?: string;
6
6
  baseUrl?: string;
7
- languages?: string[];
7
+ i18n?: {
8
+ [language: string]: {
9
+ [key: string]: string;
10
+ };
11
+ };
12
+ currentLanguage?: string;
8
13
  [key: string]: any;
9
14
  }
10
15
  export interface ICodenotchApi {
@@ -16,6 +21,7 @@ export interface ICodenotchApi {
16
21
  onSignal: (signalId: string, callback: () => void) => {
17
22
  dispose: () => void;
18
23
  };
24
+ i18n: (key: string, ...args: any[]) => string;
19
25
  }
20
26
  declare const CODENOTCH_ENV: ICodenotchEnv;
21
27
  export declare function setupCodenotchEnv(env: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC1B,GAAG,EAAE,aAAa,CAAC;IACnB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACjE,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACrE,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;CACjF;AAED,QAAA,MAAM,aAAa,EAAE,aAAkB,CAAC;AAExC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAUhD;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,aAAa,CA8D5C;AAGD,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACzD,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC1B,GAAG,EAAE,aAAa,CAAC;IACnB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACjE,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACrE,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAC9E,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC;CACjD;AAED,QAAA,MAAM,aAAa,EAAE,aAAkB,CAAC;AAExC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CA4ChD;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,aAAa,CAmG5C;AAGD,OAAO,EAAE,aAAa,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -10,10 +10,41 @@ function setupCodenotchEnv(env) {
10
10
  console.warn("Codenotch environment is not defined. Please set it in the Codenotch configuration.");
11
11
  return;
12
12
  }
13
+ // i18n.fr.somekey=some value
14
+ let i18nLanguages = new Set();
13
15
  Object.keys(env).forEach((key) => {
14
- CODENOTCH_ENV[key] = env[key];
15
- console.log(`Codenotch environment variable ${key} set to ${env[key]}`);
16
+ if (key.startsWith("i18n.")) {
17
+ // Special case
18
+ let parts = key.split(".");
19
+ let language = parts[1];
20
+ let keyName = parts.slice(2).join(".");
21
+ i18nLanguages.add(language);
22
+ let keyValue = `${env[key]}`.trim();
23
+ if (keyValue.startsWith('"') && keyValue.endsWith('"')) {
24
+ // Parse like json
25
+ try {
26
+ keyValue = JSON.parse(keyValue);
27
+ }
28
+ catch (error) {
29
+ console.warn(`Codenotch environment variable ${key} is not a valid JSON string. Using raw value.`);
30
+ }
31
+ }
32
+ CODENOTCH_ENV.i18n = CODENOTCH_ENV.i18n ?? {};
33
+ CODENOTCH_ENV.i18n[language] = CODENOTCH_ENV.i18n[language] ?? {};
34
+ CODENOTCH_ENV.i18n[language][keyName] = keyValue;
35
+ }
36
+ else {
37
+ CODENOTCH_ENV[key] = env[key];
38
+ console.log(`Codenotch environment variable ${key} set to ${env[key]}`);
39
+ }
16
40
  });
41
+ if (CODENOTCH_ENV.currentLanguage === undefined) {
42
+ // If current language is not defined, we set it to the first language found in i18n
43
+ if (i18nLanguages.size > 0) {
44
+ CODENOTCH_ENV.currentLanguage = Array.from(i18nLanguages)[0];
45
+ console.log(`Codenotch current language set to ${CODENOTCH_ENV.currentLanguage}`);
46
+ }
47
+ }
17
48
  }
18
49
  /**
19
50
  * Return Codenotch API
@@ -22,6 +53,38 @@ function setupCodenotchEnv(env) {
22
53
  function useCodenotch() {
23
54
  return {
24
55
  ENV: CODENOTCH_ENV,
56
+ i18n: (key, ...args) => {
57
+ try {
58
+ if (CODENOTCH_ENV.i18n === undefined || Object.keys(CODENOTCH_ENV.i18n).length === 0) {
59
+ console.warn("Codenotch i18n is not defined. Please set it in the Codenotch configuration.");
60
+ return key;
61
+ }
62
+ let language = CODENOTCH_ENV.currentLanguage ?? "en";
63
+ let isLanguageExists = CODENOTCH_ENV.i18n[language] !== undefined;
64
+ if (isLanguageExists === false) {
65
+ let fallbackLanguage = Object.keys(CODENOTCH_ENV.i18n)[0];
66
+ console.warn(`Codenotch i18n language ${language} is not defined. Falling back to ${fallbackLanguage}. Please set the correct language in the Codenotch configuration.`);
67
+ language = fallbackLanguage;
68
+ }
69
+ let dico = CODENOTCH_ENV.i18n[language];
70
+ let value = dico[key];
71
+ if (typeof value !== "string") {
72
+ console.warn(`Codenotch i18n key ${key} is not defined for language ${language}. Please set it in the Codenotch configuration.`);
73
+ return key;
74
+ }
75
+ args = args ?? [];
76
+ let result = value.replace(/{([\d ]*)}/g, (match, p1) => {
77
+ let argValue = args[p1.trim()];
78
+ // Instead of returning 'undefined', returns an empty string
79
+ return argValue !== undefined ? argValue : "";
80
+ });
81
+ return result;
82
+ }
83
+ catch (error) {
84
+ console.error("Error in i18n function:", error);
85
+ return key;
86
+ }
87
+ },
25
88
  requestSioql: async (sioql, verbose) => {
26
89
  if (CODENOTCH_ENV.clusterUrl === undefined) {
27
90
  throw new Error("Codenotch cluster URL is not defined. Please set it in the Codenotch configuration.");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codenotch-react",
3
- "version": "1.0.35",
3
+ "version": "1.0.36",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "author": "Codenotch SA",