@magmamath/frontend-config 1.1.2-rc.8 → 1.1.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.d.mts +152 -409
- package/dist/index.d.ts +152 -409
- package/dist/index.js +23 -113
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +24 -113
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -22
- package/dist/common.constants-ClvjFWRr.d.mts +0 -81
- package/dist/common.constants-ClvjFWRr.d.ts +0 -81
- package/dist/translation/index.d.mts +0 -41
- package/dist/translation/index.d.ts +0 -41
- package/dist/translation/index.js +0 -98
- package/dist/translation/index.js.map +0 -1
- package/dist/translation/index.mjs +0 -91
- package/dist/translation/index.mjs.map +0 -1
package/package.json
CHANGED
|
@@ -1,21 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@magmamath/frontend-config",
|
|
3
|
-
"version": "1.1.2
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"module": "./dist/index.mjs",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
|
-
"exports": {
|
|
8
|
-
".": {
|
|
9
|
-
"types": "./dist/index.d.ts",
|
|
10
|
-
"import": "./dist/index.mjs",
|
|
11
|
-
"require": "./dist/index.js"
|
|
12
|
-
},
|
|
13
|
-
"./translation": {
|
|
14
|
-
"types": "./dist/translation/index.d.ts",
|
|
15
|
-
"import": "./dist/translation/index.mjs",
|
|
16
|
-
"require": "./dist/translation/index.js"
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
7
|
"license": "ISC",
|
|
20
8
|
"files": [
|
|
21
9
|
"dist/**"
|
|
@@ -33,25 +21,17 @@
|
|
|
33
21
|
},
|
|
34
22
|
"peerDependencies": {
|
|
35
23
|
"effector": "^23.4.4",
|
|
36
|
-
"i18next": ">=23",
|
|
37
24
|
"react": "^18",
|
|
38
25
|
"react-dom": "^18",
|
|
39
|
-
"react-
|
|
40
|
-
"react-native-svg": "15.13.0",
|
|
41
|
-
"@tolgee/i18next": ">=5",
|
|
42
|
-
"@tolgee/web": ">=5"
|
|
26
|
+
"react-native-svg": "15.13.0"
|
|
43
27
|
},
|
|
44
28
|
"dependencies": {},
|
|
45
29
|
"devDependencies": {
|
|
46
|
-
"@tolgee/i18next": "^5.0.0",
|
|
47
|
-
"@tolgee/web": "^5.0.0",
|
|
48
30
|
"@types/node": "^18.0.0",
|
|
49
31
|
"@types/react": "^19.2.2",
|
|
50
32
|
"effector": "^23.4.4",
|
|
51
33
|
"eslint": "^8.57.0",
|
|
52
|
-
"i18next": "^23.0.0",
|
|
53
34
|
"react": "^18",
|
|
54
|
-
"react-i18next": "^14.0.0",
|
|
55
35
|
"react-native-svg": "15.13.0",
|
|
56
36
|
"rimraf": "^5.0.0",
|
|
57
37
|
"tsup": "^8.0.0",
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
declare enum Platform {
|
|
2
|
-
STUDENTS_WEB = "STUDENTS",
|
|
3
|
-
TEACHERS_WEB = "TEACHERS",
|
|
4
|
-
DISTRICT_DASHBOARD = "DISTRICT",
|
|
5
|
-
AUTH_WEB = "AUTH_WEB",
|
|
6
|
-
WEB_ADMIN = "WEB_ADMIN",
|
|
7
|
-
MOBILE = "MOBILE"
|
|
8
|
-
}
|
|
9
|
-
declare enum Environment {
|
|
10
|
-
MARS = "MARS",
|
|
11
|
-
VENUS = "VENUS",
|
|
12
|
-
PROD = "PROD"
|
|
13
|
-
}
|
|
14
|
-
declare enum PlatformBuildTarget {
|
|
15
|
-
PLUTO = "pluto",
|
|
16
|
-
MARS = "mars",
|
|
17
|
-
VENUS = "pre-release",
|
|
18
|
-
PROD = "production"
|
|
19
|
-
}
|
|
20
|
-
declare enum Locale {
|
|
21
|
-
US = "en-SE",
|
|
22
|
-
SE = "sv-SE",
|
|
23
|
-
GB = "en-GB",
|
|
24
|
-
CA = "en-CA",
|
|
25
|
-
SCT = "en-SCT",
|
|
26
|
-
DE = "de-DE"
|
|
27
|
-
}
|
|
28
|
-
declare enum Source {
|
|
29
|
-
MATTEAPPEN = 0,
|
|
30
|
-
SKOLON = 1,
|
|
31
|
-
SKOLFEDERATION = 2,
|
|
32
|
-
GOOGLE = 3,
|
|
33
|
-
MICROSOFT = 4,
|
|
34
|
-
CLEVER = 5,
|
|
35
|
-
APPLE = 6,
|
|
36
|
-
MATHSYNC = 7,
|
|
37
|
-
CLASSLINK = 8,
|
|
38
|
-
EDUCLOUD = 9,
|
|
39
|
-
EGIL = 10,
|
|
40
|
-
WONDE = 12,
|
|
41
|
-
SCHOOLOGY = 13,
|
|
42
|
-
SEEMIS = 14,
|
|
43
|
-
IMPORT = 15,
|
|
44
|
-
CANVAS = 16
|
|
45
|
-
}
|
|
46
|
-
declare enum LoginSource {
|
|
47
|
-
MAGMA = 0,
|
|
48
|
-
CLEVER = 1,
|
|
49
|
-
CLASS_LINK = 2,
|
|
50
|
-
SKOLON = 3,
|
|
51
|
-
SKOLFEDERATION = 4,
|
|
52
|
-
GOOGLE = 5,
|
|
53
|
-
MICROSOFT = 6,
|
|
54
|
-
APPLE = 7,
|
|
55
|
-
SCHOOLOGY = 8,
|
|
56
|
-
MY_LOGIN = 9
|
|
57
|
-
}
|
|
58
|
-
declare enum SSO {
|
|
59
|
-
APPLE = "APPLE",
|
|
60
|
-
GOOGLE = "GOOGLE",
|
|
61
|
-
MICROSOFT = "MICROSOFT",
|
|
62
|
-
CLEVER = "CLEVER",
|
|
63
|
-
SCHOOLOGY = "SCHOOLOGY",
|
|
64
|
-
CLASS_LINK = "CLASS_LINK",
|
|
65
|
-
SKOLFEDERATION = "SKOLFEDERATION",
|
|
66
|
-
SKOLON = "SKOLON",
|
|
67
|
-
WONDE = "WONDE",
|
|
68
|
-
CANVAS = "CANVAS",
|
|
69
|
-
QR_CODE = "QR_CODE"
|
|
70
|
-
}
|
|
71
|
-
declare enum ApiRegion {
|
|
72
|
-
MAIN = "MAIN",
|
|
73
|
-
CANADA = "CANADA"
|
|
74
|
-
}
|
|
75
|
-
declare enum QRCodeSize {
|
|
76
|
-
DEFAULT = "default",
|
|
77
|
-
MEDIUM = "medium",
|
|
78
|
-
LARGE = "large"
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export { ApiRegion as A, Environment as E, LoginSource as L, Platform as P, QRCodeSize as Q, SSO as S, Locale as a, PlatformBuildTarget as b, Source as c };
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
declare enum Platform {
|
|
2
|
-
STUDENTS_WEB = "STUDENTS",
|
|
3
|
-
TEACHERS_WEB = "TEACHERS",
|
|
4
|
-
DISTRICT_DASHBOARD = "DISTRICT",
|
|
5
|
-
AUTH_WEB = "AUTH_WEB",
|
|
6
|
-
WEB_ADMIN = "WEB_ADMIN",
|
|
7
|
-
MOBILE = "MOBILE"
|
|
8
|
-
}
|
|
9
|
-
declare enum Environment {
|
|
10
|
-
MARS = "MARS",
|
|
11
|
-
VENUS = "VENUS",
|
|
12
|
-
PROD = "PROD"
|
|
13
|
-
}
|
|
14
|
-
declare enum PlatformBuildTarget {
|
|
15
|
-
PLUTO = "pluto",
|
|
16
|
-
MARS = "mars",
|
|
17
|
-
VENUS = "pre-release",
|
|
18
|
-
PROD = "production"
|
|
19
|
-
}
|
|
20
|
-
declare enum Locale {
|
|
21
|
-
US = "en-SE",
|
|
22
|
-
SE = "sv-SE",
|
|
23
|
-
GB = "en-GB",
|
|
24
|
-
CA = "en-CA",
|
|
25
|
-
SCT = "en-SCT",
|
|
26
|
-
DE = "de-DE"
|
|
27
|
-
}
|
|
28
|
-
declare enum Source {
|
|
29
|
-
MATTEAPPEN = 0,
|
|
30
|
-
SKOLON = 1,
|
|
31
|
-
SKOLFEDERATION = 2,
|
|
32
|
-
GOOGLE = 3,
|
|
33
|
-
MICROSOFT = 4,
|
|
34
|
-
CLEVER = 5,
|
|
35
|
-
APPLE = 6,
|
|
36
|
-
MATHSYNC = 7,
|
|
37
|
-
CLASSLINK = 8,
|
|
38
|
-
EDUCLOUD = 9,
|
|
39
|
-
EGIL = 10,
|
|
40
|
-
WONDE = 12,
|
|
41
|
-
SCHOOLOGY = 13,
|
|
42
|
-
SEEMIS = 14,
|
|
43
|
-
IMPORT = 15,
|
|
44
|
-
CANVAS = 16
|
|
45
|
-
}
|
|
46
|
-
declare enum LoginSource {
|
|
47
|
-
MAGMA = 0,
|
|
48
|
-
CLEVER = 1,
|
|
49
|
-
CLASS_LINK = 2,
|
|
50
|
-
SKOLON = 3,
|
|
51
|
-
SKOLFEDERATION = 4,
|
|
52
|
-
GOOGLE = 5,
|
|
53
|
-
MICROSOFT = 6,
|
|
54
|
-
APPLE = 7,
|
|
55
|
-
SCHOOLOGY = 8,
|
|
56
|
-
MY_LOGIN = 9
|
|
57
|
-
}
|
|
58
|
-
declare enum SSO {
|
|
59
|
-
APPLE = "APPLE",
|
|
60
|
-
GOOGLE = "GOOGLE",
|
|
61
|
-
MICROSOFT = "MICROSOFT",
|
|
62
|
-
CLEVER = "CLEVER",
|
|
63
|
-
SCHOOLOGY = "SCHOOLOGY",
|
|
64
|
-
CLASS_LINK = "CLASS_LINK",
|
|
65
|
-
SKOLFEDERATION = "SKOLFEDERATION",
|
|
66
|
-
SKOLON = "SKOLON",
|
|
67
|
-
WONDE = "WONDE",
|
|
68
|
-
CANVAS = "CANVAS",
|
|
69
|
-
QR_CODE = "QR_CODE"
|
|
70
|
-
}
|
|
71
|
-
declare enum ApiRegion {
|
|
72
|
-
MAIN = "MAIN",
|
|
73
|
-
CANADA = "CANADA"
|
|
74
|
-
}
|
|
75
|
-
declare enum QRCodeSize {
|
|
76
|
-
DEFAULT = "default",
|
|
77
|
-
MEDIUM = "medium",
|
|
78
|
-
LARGE = "large"
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export { ApiRegion as A, Environment as E, LoginSource as L, Platform as P, QRCodeSize as Q, SSO as S, Locale as a, PlatformBuildTarget as b, Source as c };
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { InitOptions } from 'i18next';
|
|
2
|
-
import { a as Locale } from '../common.constants-ClvjFWRr.mjs';
|
|
3
|
-
|
|
4
|
-
type TolgeeConfig = {
|
|
5
|
-
isDev: boolean;
|
|
6
|
-
cdnHost: string;
|
|
7
|
-
projectId: string;
|
|
8
|
-
apiUrl?: string;
|
|
9
|
-
apiKey?: string;
|
|
10
|
-
};
|
|
11
|
-
type TranslationManagerOptions = {
|
|
12
|
-
tolgee: TolgeeConfig;
|
|
13
|
-
i18nOptions?: InitOptions;
|
|
14
|
-
localStorageKey?: string;
|
|
15
|
-
};
|
|
16
|
-
declare class TranslationManager {
|
|
17
|
-
private readonly tolgee;
|
|
18
|
-
private readonly i18nOptions;
|
|
19
|
-
private readonly localStorageKey?;
|
|
20
|
-
private initPromise;
|
|
21
|
-
constructor({ tolgee, i18nOptions, localStorageKey }: TranslationManagerOptions);
|
|
22
|
-
readonly setLanguage: (locale: Locale) => Promise<void>;
|
|
23
|
-
private readonly persistLocale;
|
|
24
|
-
private readonly ensureInitialized;
|
|
25
|
-
private readonly init;
|
|
26
|
-
private readonly createBaseTolgeeInstance;
|
|
27
|
-
private readonly initTolgeeCDN;
|
|
28
|
-
private readonly initTolgeeDevTools;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
declare enum TranslationNamespace {
|
|
32
|
-
STUDENTS_WEB = "students-web",
|
|
33
|
-
TEACHERS_WEB = "teachers-web",
|
|
34
|
-
DISTRICT_DASH = "district-dash",
|
|
35
|
-
AUTH_WEB = "auth-web",
|
|
36
|
-
MAGMAMATH_FEATURES = "magmamath-features",
|
|
37
|
-
DRAW_BOARD = "drawboard",
|
|
38
|
-
STUDENTS_FEATURES = "students-features"
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export { TranslationManager, TranslationNamespace };
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { InitOptions } from 'i18next';
|
|
2
|
-
import { a as Locale } from '../common.constants-ClvjFWRr.js';
|
|
3
|
-
|
|
4
|
-
type TolgeeConfig = {
|
|
5
|
-
isDev: boolean;
|
|
6
|
-
cdnHost: string;
|
|
7
|
-
projectId: string;
|
|
8
|
-
apiUrl?: string;
|
|
9
|
-
apiKey?: string;
|
|
10
|
-
};
|
|
11
|
-
type TranslationManagerOptions = {
|
|
12
|
-
tolgee: TolgeeConfig;
|
|
13
|
-
i18nOptions?: InitOptions;
|
|
14
|
-
localStorageKey?: string;
|
|
15
|
-
};
|
|
16
|
-
declare class TranslationManager {
|
|
17
|
-
private readonly tolgee;
|
|
18
|
-
private readonly i18nOptions;
|
|
19
|
-
private readonly localStorageKey?;
|
|
20
|
-
private initPromise;
|
|
21
|
-
constructor({ tolgee, i18nOptions, localStorageKey }: TranslationManagerOptions);
|
|
22
|
-
readonly setLanguage: (locale: Locale) => Promise<void>;
|
|
23
|
-
private readonly persistLocale;
|
|
24
|
-
private readonly ensureInitialized;
|
|
25
|
-
private readonly init;
|
|
26
|
-
private readonly createBaseTolgeeInstance;
|
|
27
|
-
private readonly initTolgeeCDN;
|
|
28
|
-
private readonly initTolgeeDevTools;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
declare enum TranslationNamespace {
|
|
32
|
-
STUDENTS_WEB = "students-web",
|
|
33
|
-
TEACHERS_WEB = "teachers-web",
|
|
34
|
-
DISTRICT_DASH = "district-dash",
|
|
35
|
-
AUTH_WEB = "auth-web",
|
|
36
|
-
MAGMAMATH_FEATURES = "magmamath-features",
|
|
37
|
-
DRAW_BOARD = "drawboard",
|
|
38
|
-
STUDENTS_FEATURES = "students-features"
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export { TranslationManager, TranslationNamespace };
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var i18n = require('i18next');
|
|
4
|
-
var reactI18next = require('react-i18next');
|
|
5
|
-
var i18next = require('@tolgee/i18next');
|
|
6
|
-
|
|
7
|
-
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
8
|
-
|
|
9
|
-
var i18n__default = /*#__PURE__*/_interopDefault(i18n);
|
|
10
|
-
|
|
11
|
-
// src/translation/TranslationManager.ts
|
|
12
|
-
var TOLGEE_DEV_TIMEOUT_MS = 3e3;
|
|
13
|
-
var DEFAULT_I18N_OPTIONS = {
|
|
14
|
-
fallbackLng: void 0,
|
|
15
|
-
load: "currentOnly",
|
|
16
|
-
react: {
|
|
17
|
-
useSuspense: false
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
var TranslationManager = class {
|
|
21
|
-
tolgee;
|
|
22
|
-
i18nOptions;
|
|
23
|
-
localStorageKey;
|
|
24
|
-
initPromise = null;
|
|
25
|
-
constructor({ tolgee, i18nOptions = {}, localStorageKey }) {
|
|
26
|
-
this.tolgee = tolgee;
|
|
27
|
-
this.i18nOptions = i18nOptions;
|
|
28
|
-
this.localStorageKey = localStorageKey;
|
|
29
|
-
}
|
|
30
|
-
setLanguage = async (locale) => {
|
|
31
|
-
this.persistLocale(locale);
|
|
32
|
-
await this.ensureInitialized(locale);
|
|
33
|
-
if (i18n__default.default.language !== locale) {
|
|
34
|
-
await i18n__default.default.changeLanguage(locale);
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
persistLocale = (locale) => {
|
|
38
|
-
if (!this.localStorageKey) return;
|
|
39
|
-
localStorage.setItem(this.localStorageKey, locale);
|
|
40
|
-
};
|
|
41
|
-
ensureInitialized = async (locale) => {
|
|
42
|
-
if (!this.initPromise) {
|
|
43
|
-
this.initPromise = this.init(locale).catch((error) => {
|
|
44
|
-
this.initPromise = null;
|
|
45
|
-
throw error;
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
await this.initPromise;
|
|
49
|
-
};
|
|
50
|
-
init = async (locale) => {
|
|
51
|
-
const tolgee = this.tolgee.isDev ? await this.initTolgeeDevTools() : this.initTolgeeCDN();
|
|
52
|
-
await i18next.withTolgee(i18n__default.default, tolgee).use(reactI18next.initReactI18next).init({
|
|
53
|
-
...DEFAULT_I18N_OPTIONS,
|
|
54
|
-
...this.i18nOptions,
|
|
55
|
-
lng: locale
|
|
56
|
-
});
|
|
57
|
-
};
|
|
58
|
-
createBaseTolgeeInstance = () => {
|
|
59
|
-
return i18next.Tolgee().use(i18next.I18nextPlugin()).use(
|
|
60
|
-
i18next.BackendFetch({
|
|
61
|
-
prefix: `${this.tolgee.cdnHost}/${this.tolgee.projectId}`
|
|
62
|
-
})
|
|
63
|
-
);
|
|
64
|
-
};
|
|
65
|
-
initTolgeeCDN = () => {
|
|
66
|
-
return this.createBaseTolgeeInstance().init();
|
|
67
|
-
};
|
|
68
|
-
initTolgeeDevTools = async () => {
|
|
69
|
-
const [{ InContextTools }, { DevBackend }] = await Promise.all([
|
|
70
|
-
import('@tolgee/web/tools'),
|
|
71
|
-
import('@tolgee/i18next')
|
|
72
|
-
]);
|
|
73
|
-
return this.createBaseTolgeeInstance().use(DevBackend()).use(InContextTools()).init({
|
|
74
|
-
apiUrl: this.tolgee.apiUrl,
|
|
75
|
-
apiKey: this.tolgee.apiKey,
|
|
76
|
-
fetch: (input, init) => {
|
|
77
|
-
return fetch(input, { ...init, signal: AbortSignal.timeout(TOLGEE_DEV_TIMEOUT_MS) });
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
};
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
// src/translation/translation.constants.ts
|
|
84
|
-
var TranslationNamespace = /* @__PURE__ */ ((TranslationNamespace2) => {
|
|
85
|
-
TranslationNamespace2["STUDENTS_WEB"] = "students-web";
|
|
86
|
-
TranslationNamespace2["TEACHERS_WEB"] = "teachers-web";
|
|
87
|
-
TranslationNamespace2["DISTRICT_DASH"] = "district-dash";
|
|
88
|
-
TranslationNamespace2["AUTH_WEB"] = "auth-web";
|
|
89
|
-
TranslationNamespace2["MAGMAMATH_FEATURES"] = "magmamath-features";
|
|
90
|
-
TranslationNamespace2["DRAW_BOARD"] = "drawboard";
|
|
91
|
-
TranslationNamespace2["STUDENTS_FEATURES"] = "students-features";
|
|
92
|
-
return TranslationNamespace2;
|
|
93
|
-
})(TranslationNamespace || {});
|
|
94
|
-
|
|
95
|
-
exports.TranslationManager = TranslationManager;
|
|
96
|
-
exports.TranslationNamespace = TranslationNamespace;
|
|
97
|
-
//# sourceMappingURL=index.js.map
|
|
98
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/translation/TranslationManager.ts","../../src/translation/translation.constants.ts"],"names":["i18n","withTolgee","initReactI18next","Tolgee","I18nextPlugin","BackendFetch","TranslationNamespace"],"mappings":"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","file":"index.js","sourcesContent":["import i18n, { InitOptions } from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport type { TolgeeInstance } from '@tolgee/i18next'\nimport { BackendFetch, I18nextPlugin, Tolgee, withTolgee } from '@tolgee/i18next'\nimport { Locale } from '../shared/constants/common.constants'\n\nconst TOLGEE_DEV_TIMEOUT_MS = 3000\n\nconst DEFAULT_I18N_OPTIONS: InitOptions = {\n fallbackLng: undefined,\n load: 'currentOnly',\n react: {\n useSuspense: false,\n },\n}\n\ntype TolgeeConfig = {\n isDev: boolean\n cdnHost: string\n projectId: string\n apiUrl?: string\n apiKey?: string\n}\n\ntype TranslationManagerOptions = {\n tolgee: TolgeeConfig\n i18nOptions?: InitOptions\n localStorageKey?: string\n}\n\nexport class TranslationManager {\n private readonly tolgee: TolgeeConfig\n private readonly i18nOptions: InitOptions\n private readonly localStorageKey?: string\n private initPromise: Promise<void> | null = null\n\n constructor({ tolgee, i18nOptions = {}, localStorageKey }: TranslationManagerOptions) {\n this.tolgee = tolgee\n this.i18nOptions = i18nOptions\n this.localStorageKey = localStorageKey\n }\n\n public readonly setLanguage = async (locale: Locale) => {\n this.persistLocale(locale)\n await this.ensureInitialized(locale)\n\n if (i18n.language !== locale) {\n await i18n.changeLanguage(locale)\n }\n }\n\n private readonly persistLocale = (locale: Locale) => {\n if (!this.localStorageKey) return\n localStorage.setItem(this.localStorageKey, locale)\n }\n\n private readonly ensureInitialized = async (locale: Locale) => {\n if (!this.initPromise) {\n this.initPromise = this.init(locale).catch((error) => {\n this.initPromise = null\n throw error\n })\n }\n await this.initPromise\n }\n\n private readonly init = async (locale: Locale) => {\n const tolgee = this.tolgee.isDev ? await this.initTolgeeDevTools() : this.initTolgeeCDN()\n\n await withTolgee(i18n, tolgee)\n .use(initReactI18next)\n .init({\n ...DEFAULT_I18N_OPTIONS,\n ...this.i18nOptions,\n lng: locale,\n })\n }\n\n private readonly createBaseTolgeeInstance = () => {\n return Tolgee()\n .use(I18nextPlugin())\n .use(\n BackendFetch({\n prefix: `${this.tolgee.cdnHost}/${this.tolgee.projectId}`,\n })\n )\n }\n\n private readonly initTolgeeCDN = () => {\n return this.createBaseTolgeeInstance().init()\n }\n\n private readonly initTolgeeDevTools = async (): Promise<TolgeeInstance> => {\n const [{ InContextTools }, { DevBackend }] = await Promise.all([\n import('@tolgee/web/tools'),\n import('@tolgee/i18next'),\n ])\n\n return this.createBaseTolgeeInstance()\n .use(DevBackend())\n .use(InContextTools())\n .init({\n apiUrl: this.tolgee.apiUrl,\n apiKey: this.tolgee.apiKey,\n fetch: (input, init) => {\n return fetch(input, { ...init, signal: AbortSignal.timeout(TOLGEE_DEV_TIMEOUT_MS) })\n },\n })\n }\n}\n","export enum TranslationNamespace {\n STUDENTS_WEB = 'students-web',\n TEACHERS_WEB = 'teachers-web',\n DISTRICT_DASH = 'district-dash',\n AUTH_WEB = 'auth-web',\n MAGMAMATH_FEATURES = 'magmamath-features',\n DRAW_BOARD = 'drawboard',\n STUDENTS_FEATURES = 'students-features',\n}\n"]}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import i18n from 'i18next';
|
|
2
|
-
import { initReactI18next } from 'react-i18next';
|
|
3
|
-
import { withTolgee, Tolgee, I18nextPlugin, BackendFetch } from '@tolgee/i18next';
|
|
4
|
-
|
|
5
|
-
// src/translation/TranslationManager.ts
|
|
6
|
-
var TOLGEE_DEV_TIMEOUT_MS = 3e3;
|
|
7
|
-
var DEFAULT_I18N_OPTIONS = {
|
|
8
|
-
fallbackLng: void 0,
|
|
9
|
-
load: "currentOnly",
|
|
10
|
-
react: {
|
|
11
|
-
useSuspense: false
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
var TranslationManager = class {
|
|
15
|
-
tolgee;
|
|
16
|
-
i18nOptions;
|
|
17
|
-
localStorageKey;
|
|
18
|
-
initPromise = null;
|
|
19
|
-
constructor({ tolgee, i18nOptions = {}, localStorageKey }) {
|
|
20
|
-
this.tolgee = tolgee;
|
|
21
|
-
this.i18nOptions = i18nOptions;
|
|
22
|
-
this.localStorageKey = localStorageKey;
|
|
23
|
-
}
|
|
24
|
-
setLanguage = async (locale) => {
|
|
25
|
-
this.persistLocale(locale);
|
|
26
|
-
await this.ensureInitialized(locale);
|
|
27
|
-
if (i18n.language !== locale) {
|
|
28
|
-
await i18n.changeLanguage(locale);
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
persistLocale = (locale) => {
|
|
32
|
-
if (!this.localStorageKey) return;
|
|
33
|
-
localStorage.setItem(this.localStorageKey, locale);
|
|
34
|
-
};
|
|
35
|
-
ensureInitialized = async (locale) => {
|
|
36
|
-
if (!this.initPromise) {
|
|
37
|
-
this.initPromise = this.init(locale).catch((error) => {
|
|
38
|
-
this.initPromise = null;
|
|
39
|
-
throw error;
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
await this.initPromise;
|
|
43
|
-
};
|
|
44
|
-
init = async (locale) => {
|
|
45
|
-
const tolgee = this.tolgee.isDev ? await this.initTolgeeDevTools() : this.initTolgeeCDN();
|
|
46
|
-
await withTolgee(i18n, tolgee).use(initReactI18next).init({
|
|
47
|
-
...DEFAULT_I18N_OPTIONS,
|
|
48
|
-
...this.i18nOptions,
|
|
49
|
-
lng: locale
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
|
-
createBaseTolgeeInstance = () => {
|
|
53
|
-
return Tolgee().use(I18nextPlugin()).use(
|
|
54
|
-
BackendFetch({
|
|
55
|
-
prefix: `${this.tolgee.cdnHost}/${this.tolgee.projectId}`
|
|
56
|
-
})
|
|
57
|
-
);
|
|
58
|
-
};
|
|
59
|
-
initTolgeeCDN = () => {
|
|
60
|
-
return this.createBaseTolgeeInstance().init();
|
|
61
|
-
};
|
|
62
|
-
initTolgeeDevTools = async () => {
|
|
63
|
-
const [{ InContextTools }, { DevBackend }] = await Promise.all([
|
|
64
|
-
import('@tolgee/web/tools'),
|
|
65
|
-
import('@tolgee/i18next')
|
|
66
|
-
]);
|
|
67
|
-
return this.createBaseTolgeeInstance().use(DevBackend()).use(InContextTools()).init({
|
|
68
|
-
apiUrl: this.tolgee.apiUrl,
|
|
69
|
-
apiKey: this.tolgee.apiKey,
|
|
70
|
-
fetch: (input, init) => {
|
|
71
|
-
return fetch(input, { ...init, signal: AbortSignal.timeout(TOLGEE_DEV_TIMEOUT_MS) });
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
};
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
// src/translation/translation.constants.ts
|
|
78
|
-
var TranslationNamespace = /* @__PURE__ */ ((TranslationNamespace2) => {
|
|
79
|
-
TranslationNamespace2["STUDENTS_WEB"] = "students-web";
|
|
80
|
-
TranslationNamespace2["TEACHERS_WEB"] = "teachers-web";
|
|
81
|
-
TranslationNamespace2["DISTRICT_DASH"] = "district-dash";
|
|
82
|
-
TranslationNamespace2["AUTH_WEB"] = "auth-web";
|
|
83
|
-
TranslationNamespace2["MAGMAMATH_FEATURES"] = "magmamath-features";
|
|
84
|
-
TranslationNamespace2["DRAW_BOARD"] = "drawboard";
|
|
85
|
-
TranslationNamespace2["STUDENTS_FEATURES"] = "students-features";
|
|
86
|
-
return TranslationNamespace2;
|
|
87
|
-
})(TranslationNamespace || {});
|
|
88
|
-
|
|
89
|
-
export { TranslationManager, TranslationNamespace };
|
|
90
|
-
//# sourceMappingURL=index.mjs.map
|
|
91
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/translation/TranslationManager.ts","../../src/translation/translation.constants.ts"],"names":["TranslationNamespace"],"mappings":"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","file":"index.mjs","sourcesContent":["import i18n, { InitOptions } from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport type { TolgeeInstance } from '@tolgee/i18next'\nimport { BackendFetch, I18nextPlugin, Tolgee, withTolgee } from '@tolgee/i18next'\nimport { Locale } from '../shared/constants/common.constants'\n\nconst TOLGEE_DEV_TIMEOUT_MS = 3000\n\nconst DEFAULT_I18N_OPTIONS: InitOptions = {\n fallbackLng: undefined,\n load: 'currentOnly',\n react: {\n useSuspense: false,\n },\n}\n\ntype TolgeeConfig = {\n isDev: boolean\n cdnHost: string\n projectId: string\n apiUrl?: string\n apiKey?: string\n}\n\ntype TranslationManagerOptions = {\n tolgee: TolgeeConfig\n i18nOptions?: InitOptions\n localStorageKey?: string\n}\n\nexport class TranslationManager {\n private readonly tolgee: TolgeeConfig\n private readonly i18nOptions: InitOptions\n private readonly localStorageKey?: string\n private initPromise: Promise<void> | null = null\n\n constructor({ tolgee, i18nOptions = {}, localStorageKey }: TranslationManagerOptions) {\n this.tolgee = tolgee\n this.i18nOptions = i18nOptions\n this.localStorageKey = localStorageKey\n }\n\n public readonly setLanguage = async (locale: Locale) => {\n this.persistLocale(locale)\n await this.ensureInitialized(locale)\n\n if (i18n.language !== locale) {\n await i18n.changeLanguage(locale)\n }\n }\n\n private readonly persistLocale = (locale: Locale) => {\n if (!this.localStorageKey) return\n localStorage.setItem(this.localStorageKey, locale)\n }\n\n private readonly ensureInitialized = async (locale: Locale) => {\n if (!this.initPromise) {\n this.initPromise = this.init(locale).catch((error) => {\n this.initPromise = null\n throw error\n })\n }\n await this.initPromise\n }\n\n private readonly init = async (locale: Locale) => {\n const tolgee = this.tolgee.isDev ? await this.initTolgeeDevTools() : this.initTolgeeCDN()\n\n await withTolgee(i18n, tolgee)\n .use(initReactI18next)\n .init({\n ...DEFAULT_I18N_OPTIONS,\n ...this.i18nOptions,\n lng: locale,\n })\n }\n\n private readonly createBaseTolgeeInstance = () => {\n return Tolgee()\n .use(I18nextPlugin())\n .use(\n BackendFetch({\n prefix: `${this.tolgee.cdnHost}/${this.tolgee.projectId}`,\n })\n )\n }\n\n private readonly initTolgeeCDN = () => {\n return this.createBaseTolgeeInstance().init()\n }\n\n private readonly initTolgeeDevTools = async (): Promise<TolgeeInstance> => {\n const [{ InContextTools }, { DevBackend }] = await Promise.all([\n import('@tolgee/web/tools'),\n import('@tolgee/i18next'),\n ])\n\n return this.createBaseTolgeeInstance()\n .use(DevBackend())\n .use(InContextTools())\n .init({\n apiUrl: this.tolgee.apiUrl,\n apiKey: this.tolgee.apiKey,\n fetch: (input, init) => {\n return fetch(input, { ...init, signal: AbortSignal.timeout(TOLGEE_DEV_TIMEOUT_MS) })\n },\n })\n }\n}\n","export enum TranslationNamespace {\n STUDENTS_WEB = 'students-web',\n TEACHERS_WEB = 'teachers-web',\n DISTRICT_DASH = 'district-dash',\n AUTH_WEB = 'auth-web',\n MAGMAMATH_FEATURES = 'magmamath-features',\n DRAW_BOARD = 'drawboard',\n STUDENTS_FEATURES = 'students-features',\n}\n"]}
|