@quantica-apps/platform-i18n 0.1.1
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 +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +133 -0
- package/dist/index.js.map +1 -0
- package/package.json +27 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import i18n, { type Resource } from 'i18next';
|
|
2
|
+
export interface SetupPlatformI18nOptions {
|
|
3
|
+
readonly resources?: Resource;
|
|
4
|
+
readonly fallbackLng?: 'pt' | 'en';
|
|
5
|
+
}
|
|
6
|
+
export declare function setupPlatformI18n(options?: SetupPlatformI18nOptions): import("i18next").i18n;
|
|
7
|
+
export { i18n };
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAkF9C,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpC;AAqDD,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,wBAAwB,0BAiBnE;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import i18n from 'i18next';
|
|
2
|
+
import LanguageDetector from 'i18next-browser-languagedetector';
|
|
3
|
+
import { initReactI18next } from 'react-i18next';
|
|
4
|
+
const platformResources = {
|
|
5
|
+
en: {
|
|
6
|
+
translation: {
|
|
7
|
+
common: {
|
|
8
|
+
user: 'User',
|
|
9
|
+
},
|
|
10
|
+
app: {
|
|
11
|
+
loading: 'Loading application...',
|
|
12
|
+
login_cta: 'Open login',
|
|
13
|
+
login_message: 'Session not started. If Keycloak did not open automatically, click below.',
|
|
14
|
+
},
|
|
15
|
+
loading: {
|
|
16
|
+
authenticating: 'Authenticating your session',
|
|
17
|
+
loading: 'Loading...',
|
|
18
|
+
},
|
|
19
|
+
access_denied: {
|
|
20
|
+
title: 'Access denied',
|
|
21
|
+
description: 'Your account does not have access to this application.',
|
|
22
|
+
retry: 'Try again',
|
|
23
|
+
},
|
|
24
|
+
sidebar: {
|
|
25
|
+
back_to_hub: 'Back to Hub',
|
|
26
|
+
evoke_app_title: 'Evoke App',
|
|
27
|
+
logout: 'Sign out',
|
|
28
|
+
quantica_logo_alt: 'Quantica Logo',
|
|
29
|
+
},
|
|
30
|
+
language: {
|
|
31
|
+
en: 'English',
|
|
32
|
+
platform_language: 'Platform language',
|
|
33
|
+
pt: 'Portuguese',
|
|
34
|
+
switch_language: 'Switch language',
|
|
35
|
+
},
|
|
36
|
+
main_layout: {
|
|
37
|
+
open_menu: 'Open menu',
|
|
38
|
+
close_menu: 'Close menu',
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
pt: {
|
|
43
|
+
translation: {
|
|
44
|
+
common: {
|
|
45
|
+
user: 'Usuario',
|
|
46
|
+
},
|
|
47
|
+
app: {
|
|
48
|
+
loading: 'Carregando aplicacao...',
|
|
49
|
+
login_cta: 'Abrir login',
|
|
50
|
+
login_message: 'Sessao nao iniciada. Se o redirecionamento para o Keycloak nao abriu, clique abaixo.',
|
|
51
|
+
},
|
|
52
|
+
loading: {
|
|
53
|
+
authenticating: 'Autenticando sua sessao',
|
|
54
|
+
loading: 'Carregando...',
|
|
55
|
+
},
|
|
56
|
+
access_denied: {
|
|
57
|
+
title: 'Acesso negado',
|
|
58
|
+
description: 'Sua conta nao tem acesso a esta aplicacao.',
|
|
59
|
+
retry: 'Tentar novamente',
|
|
60
|
+
},
|
|
61
|
+
sidebar: {
|
|
62
|
+
back_to_hub: 'Voltar ao Hub',
|
|
63
|
+
evoke_app_title: 'Evoke App',
|
|
64
|
+
logout: 'Sair',
|
|
65
|
+
quantica_logo_alt: 'Quantica Logo',
|
|
66
|
+
},
|
|
67
|
+
language: {
|
|
68
|
+
en: 'English',
|
|
69
|
+
platform_language: 'Idioma da plataforma',
|
|
70
|
+
pt: 'Portugues',
|
|
71
|
+
switch_language: 'Trocar idioma',
|
|
72
|
+
},
|
|
73
|
+
main_layout: {
|
|
74
|
+
open_menu: 'Abrir menu',
|
|
75
|
+
close_menu: 'Fechar menu',
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
const mergePlainObject = (base, incoming) => {
|
|
81
|
+
const merged = { ...base };
|
|
82
|
+
for (const [key, value] of Object.entries(incoming)) {
|
|
83
|
+
const baseValue = merged[key];
|
|
84
|
+
if (value &&
|
|
85
|
+
baseValue &&
|
|
86
|
+
typeof value === 'object' &&
|
|
87
|
+
typeof baseValue === 'object' &&
|
|
88
|
+
!Array.isArray(value) &&
|
|
89
|
+
!Array.isArray(baseValue)) {
|
|
90
|
+
merged[key] = mergePlainObject(baseValue, value);
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
merged[key] = value;
|
|
94
|
+
}
|
|
95
|
+
return merged;
|
|
96
|
+
};
|
|
97
|
+
const mergeResources = (resources) => {
|
|
98
|
+
if (!resources) {
|
|
99
|
+
return platformResources;
|
|
100
|
+
}
|
|
101
|
+
const incomingEn = (resources.en?.translation ?? {});
|
|
102
|
+
const incomingPt = (resources.pt?.translation ?? {});
|
|
103
|
+
return {
|
|
104
|
+
en: {
|
|
105
|
+
translation: {
|
|
106
|
+
...mergePlainObject(platformResources.en.translation, incomingEn),
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
pt: {
|
|
110
|
+
translation: {
|
|
111
|
+
...mergePlainObject(platformResources.pt.translation, incomingPt),
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
export function setupPlatformI18n(options) {
|
|
117
|
+
if (i18n.isInitialized) {
|
|
118
|
+
return i18n;
|
|
119
|
+
}
|
|
120
|
+
void i18n
|
|
121
|
+
.use(LanguageDetector)
|
|
122
|
+
.use(initReactI18next)
|
|
123
|
+
.init({
|
|
124
|
+
resources: mergeResources(options?.resources),
|
|
125
|
+
fallbackLng: options?.fallbackLng ?? 'pt',
|
|
126
|
+
interpolation: {
|
|
127
|
+
escapeValue: false,
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
return i18n;
|
|
131
|
+
}
|
|
132
|
+
export { i18n };
|
|
133
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@quantica-apps/platform-i18n",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"files": [
|
|
6
|
+
"dist"
|
|
7
|
+
],
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"default": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "tsc -p tsconfig.build.json",
|
|
16
|
+
"type-check": "tsc -p tsconfig.build.json --noEmit"
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"i18next": "^25.8.17",
|
|
20
|
+
"i18next-browser-languagedetector": "^8.2.1",
|
|
21
|
+
"react-i18next": "^16.5.6"
|
|
22
|
+
},
|
|
23
|
+
"publishConfig": {
|
|
24
|
+
"access": "public"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|