piral-translate 1.6.0-beta.7240 → 1.6.0-beta.7244
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/lib/Languages.js +6 -10
- package/lib/Languages.js.map +1 -1
- package/lib/actions.js +1 -5
- package/lib/actions.js.map +1 -1
- package/lib/components.js +2 -5
- package/lib/components.js.map +1 -1
- package/lib/create.js +11 -16
- package/lib/create.js.map +1 -1
- package/lib/current.js +3 -7
- package/lib/current.js.map +1 -1
- package/lib/default.js +2 -6
- package/lib/default.js.map +1 -1
- package/lib/flatten-translations.js +1 -5
- package/lib/flatten-translations.js.map +1 -1
- package/lib/hooks.js +9 -14
- package/lib/hooks.js.map +1 -1
- package/lib/index.js +6 -9
- package/lib/index.js.map +1 -1
- package/lib/localize.js +3 -7
- package/lib/localize.js.map +1 -1
- package/lib/types.js +1 -2
- package/package.json +9 -20
- package/esm/Languages.d.ts +0 -2
- package/esm/Languages.js +0 -8
- package/esm/Languages.js.map +0 -1
- package/esm/actions.d.ts +0 -14
- package/esm/actions.js +0 -50
- package/esm/actions.js.map +0 -1
- package/esm/components.d.ts +0 -2
- package/esm/components.js +0 -3
- package/esm/components.js.map +0 -1
- package/esm/create.d.ts +0 -33
- package/esm/create.js +0 -71
- package/esm/create.js.map +0 -1
- package/esm/current.d.ts +0 -1
- package/esm/current.js +0 -22
- package/esm/current.js.map +0 -1
- package/esm/default.d.ts +0 -3
- package/esm/default.js +0 -3
- package/esm/default.js.map +0 -1
- package/esm/flatten-translations.d.ts +0 -2
- package/esm/flatten-translations.js +0 -23
- package/esm/flatten-translations.js.map +0 -1
- package/esm/hooks.d.ts +0 -3
- package/esm/hooks.js +0 -27
- package/esm/hooks.js.map +0 -1
- package/esm/index.d.ts +0 -6
- package/esm/index.js +0 -7
- package/esm/index.js.map +0 -1
- package/esm/localize.d.ts +0 -27
- package/esm/localize.js +0 -67
- package/esm/localize.js.map +0 -1
- package/esm/types.d.ts +0 -163
- package/esm/types.js +0 -2
- package/esm/types.js.map +0 -1
package/lib/Languages.js
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
const Languages = () => {
|
|
8
|
-
const { available, selected } = (0, piral_core_1.useGlobalState)((m) => m.language);
|
|
9
|
-
return React.createElement(components_1.PiralLanguagesPicker, { selected: selected, available: available });
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useGlobalState } from 'piral-core';
|
|
3
|
+
import { PiralLanguagesPicker } from './components';
|
|
4
|
+
export const Languages = () => {
|
|
5
|
+
const { available, selected } = useGlobalState((m) => m.language);
|
|
6
|
+
return React.createElement(PiralLanguagesPicker, { selected: selected, available: available });
|
|
10
7
|
};
|
|
11
|
-
exports.Languages = Languages;
|
|
12
8
|
//# sourceMappingURL=Languages.js.map
|
package/lib/Languages.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Languages.js","sourceRoot":"","sources":["../src/Languages.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Languages.js","sourceRoot":"","sources":["../src/Languages.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,CAAC,MAAM,SAAS,GAAa,GAAG,EAAE;IACtC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAClE,OAAO,oBAAC,oBAAoB,IAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAI,CAAC;AAC5E,CAAC,CAAC"}
|
package/lib/actions.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createActions = void 0;
|
|
4
|
-
function createActions(localizer) {
|
|
1
|
+
export function createActions(localizer) {
|
|
5
2
|
return {
|
|
6
3
|
selectLanguage(ctx, selected) {
|
|
7
4
|
ctx.dispatch((state) => {
|
|
@@ -50,5 +47,4 @@ function createActions(localizer) {
|
|
|
50
47
|
},
|
|
51
48
|
};
|
|
52
49
|
}
|
|
53
|
-
exports.createActions = createActions;
|
|
54
50
|
//# sourceMappingURL=actions.js.map
|
package/lib/actions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,aAAa,CAAC,SAAsB;IAClD,OAAO;QACL,cAAc,CAAC,GAAuB,EAAE,QAAgB;YACtD,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;gBACrB,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC9B,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACjD,MAAM,eAAe,GAAG,QAAQ,CAAC;gBAEjC,yDAAyD;gBACzD,UAAU,CAAC,GAAG,EAAE;oBACd,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE;wBAC1B,gBAAgB;wBAChB,eAAe;qBAChB,CAAC,CAAC;gBACL,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEN,OAAO;oBACL,GAAG,KAAK;oBACR,QAAQ,EAAE;wBACR,GAAG,KAAK,CAAC,QAAQ;wBACjB,OAAO,EAAE,QAAQ,KAAK,SAAS;wBAC/B,QAAQ;qBACT;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,SAAS,CAAC,CAAqB,EAAE,GAAW,EAAE,SAAc;YAC1D,OAAO,SAAS,IAAI,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC/D,CAAC;QACD,eAAe,CAAC,GAAuB,EAAE,QAAgB,EAAE,IAAI;YAC7D,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAE3C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC9B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEhC,IAAI,GAAG,EAAE;oBACP,MAAM,YAAY,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;oBAC3C,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;oBACpC,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBACnC;aACF;QACH,CAAC;QACD,eAAe,CAAC,GAAuB,EAAE,QAAgB;YACvD,OAAO;gBACL,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACpC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC3C,IAAI;oBACJ,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;iBAClD,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/lib/components.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.PiralLanguagesPicker = void 0;
|
|
4
|
-
const piral_core_1 = require("piral-core");
|
|
5
|
-
exports.PiralLanguagesPicker = (0, piral_core_1.getPiralComponent)('LanguagesPicker');
|
|
1
|
+
import { getPiralComponent } from 'piral-core';
|
|
2
|
+
export const PiralLanguagesPicker = getPiralComponent('LanguagesPicker');
|
|
6
3
|
//# sourceMappingURL=components.js.map
|
package/lib/components.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sourceRoot":"","sources":["../src/components.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"components.js","sourceRoot":"","sources":["../src/components.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC"}
|
package/lib/create.js
CHANGED
|
@@ -1,36 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const localize_1 = require("./localize");
|
|
7
|
-
const default_1 = require("./default");
|
|
8
|
-
const flatten_translations_1 = require("./flatten-translations");
|
|
1
|
+
import * as deepmerge from 'deepmerge';
|
|
2
|
+
import { createActions } from './actions';
|
|
3
|
+
import { Localizer } from './localize';
|
|
4
|
+
import { DefaultPicker } from './default';
|
|
5
|
+
import { flattenTranslations } from './flatten-translations';
|
|
9
6
|
/**
|
|
10
7
|
* Sets up a new localizer by using the given config.
|
|
11
8
|
* @param config The configuration for the new localizer.
|
|
12
9
|
*/
|
|
13
|
-
function setupLocalizer(config = {}) {
|
|
10
|
+
export function setupLocalizer(config = {}) {
|
|
14
11
|
const msgs = config.messages || {};
|
|
15
12
|
const languages = Object.keys(msgs);
|
|
16
13
|
const defaultLang = languages[0] || 'en';
|
|
17
14
|
const computeLang = config.language;
|
|
18
15
|
const usedLang = typeof computeLang === 'function' ? computeLang(languages, defaultLang, 'en') : computeLang;
|
|
19
16
|
const language = usedLang || defaultLang;
|
|
20
|
-
return new
|
|
17
|
+
return new Localizer(msgs, language, languages.length ? languages : [language], config.fallback);
|
|
21
18
|
}
|
|
22
|
-
exports.setupLocalizer = setupLocalizer;
|
|
23
19
|
/**
|
|
24
20
|
* Creates new Pilet API extensions for localization.
|
|
25
21
|
* @param localizer The specific localizer to be used, if any.
|
|
26
22
|
*/
|
|
27
|
-
function createLocaleApi(localizer = setupLocalizer()) {
|
|
23
|
+
export function createLocaleApi(localizer = setupLocalizer()) {
|
|
28
24
|
return (context) => {
|
|
29
|
-
context.defineActions(
|
|
25
|
+
context.defineActions(createActions(localizer));
|
|
30
26
|
context.dispatch((state) => ({
|
|
31
27
|
...state,
|
|
32
28
|
components: {
|
|
33
|
-
LanguagesPicker:
|
|
29
|
+
LanguagesPicker: DefaultPicker,
|
|
34
30
|
...state.components,
|
|
35
31
|
},
|
|
36
32
|
language: {
|
|
@@ -42,7 +38,7 @@ function createLocaleApi(localizer = setupLocalizer()) {
|
|
|
42
38
|
return (api) => {
|
|
43
39
|
let localTranslations = {};
|
|
44
40
|
const setTranslations = (messages) => {
|
|
45
|
-
localTranslations =
|
|
41
|
+
localTranslations = flattenTranslations(messages);
|
|
46
42
|
};
|
|
47
43
|
return {
|
|
48
44
|
addTranslations(messages, isOverriding = true) {
|
|
@@ -72,5 +68,4 @@ function createLocaleApi(localizer = setupLocalizer()) {
|
|
|
72
68
|
};
|
|
73
69
|
};
|
|
74
70
|
}
|
|
75
|
-
exports.createLocaleApi = createLocaleApi;
|
|
76
71
|
//# sourceMappingURL=create.js.map
|
package/lib/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
|
package/lib/current.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getUserLocale = void 0;
|
|
4
|
-
const piral_core_1 = require("piral-core");
|
|
1
|
+
import { cookie, storage } from 'piral-core';
|
|
5
2
|
function getUserLocaleUnchecked(defaultLocale, remoteLocale) {
|
|
6
|
-
const storedLocale =
|
|
3
|
+
const storedLocale = cookie.getItem('_culture') || storage.getItem('locale');
|
|
7
4
|
if (storedLocale) {
|
|
8
5
|
return storedLocale;
|
|
9
6
|
}
|
|
@@ -15,12 +12,11 @@ function getUserLocaleUnchecked(defaultLocale, remoteLocale) {
|
|
|
15
12
|
}
|
|
16
13
|
return defaultLocale;
|
|
17
14
|
}
|
|
18
|
-
function getUserLocale(availableLocales, defaultLocale, fallbackLocale) {
|
|
15
|
+
export function getUserLocale(availableLocales, defaultLocale, fallbackLocale) {
|
|
19
16
|
const selected = getUserLocaleUnchecked(defaultLocale, fallbackLocale || '');
|
|
20
17
|
if (availableLocales.indexOf(selected) !== -1) {
|
|
21
18
|
return selected;
|
|
22
19
|
}
|
|
23
20
|
return defaultLocale;
|
|
24
21
|
}
|
|
25
|
-
exports.getUserLocale = getUserLocale;
|
|
26
22
|
//# sourceMappingURL=current.js.map
|
package/lib/current.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"current.js","sourceRoot":"","sources":["../src/current.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"current.js","sourceRoot":"","sources":["../src/current.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE7C,SAAS,sBAAsB,CAAC,aAAqB,EAAE,YAAoB;IACzE,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE7E,IAAI,YAAY,EAAE;QAChB,OAAO,YAAY,CAAC;KACrB;SAAM,IAAI,YAAY,EAAE;QACvB,OAAO,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACnD;SAAM,IAAI,SAAS,CAAC,QAAQ,EAAE;QAC7B,OAAO,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAC3C;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,gBAA+B,EAAE,aAAqB,EAAE,cAAuB;IAC3G,MAAM,QAAQ,GAAG,sBAAsB,CAAC,aAAa,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC;IAE7E,IAAI,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;QAC7C,OAAO,QAAQ,CAAC;KACjB;IAED,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
package/lib/default.js
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.DefaultPicker = void 0;
|
|
4
|
-
const piral_core_1 = require("piral-core");
|
|
5
|
-
const DefaultPicker = (props) => (0, piral_core_1.defaultRender)(undefined);
|
|
6
|
-
exports.DefaultPicker = DefaultPicker;
|
|
1
|
+
import { defaultRender } from 'piral-core';
|
|
2
|
+
export const DefaultPicker = (props) => defaultRender(undefined);
|
|
7
3
|
//# sourceMappingURL=default.js.map
|
package/lib/default.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default.js","sourceRoot":"","sources":["../src/default.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"default.js","sourceRoot":"","sources":["../src/default.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,MAAM,CAAC,MAAM,aAAa,GAA6B,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.flattenTranslations = void 0;
|
|
4
1
|
function flat(source) {
|
|
5
2
|
const target = {};
|
|
6
3
|
flatten(source, target);
|
|
@@ -18,10 +15,9 @@ function flatten(source, target, prop = '') {
|
|
|
18
15
|
return;
|
|
19
16
|
}
|
|
20
17
|
}
|
|
21
|
-
function flattenTranslations(messages) {
|
|
18
|
+
export function flattenTranslations(messages) {
|
|
22
19
|
return Object.fromEntries(Object.entries(messages).map(([language, translations]) => {
|
|
23
20
|
return [language, flat(translations)];
|
|
24
21
|
}));
|
|
25
22
|
}
|
|
26
|
-
exports.flattenTranslations = flattenTranslations;
|
|
27
23
|
//# sourceMappingURL=flatten-translations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flatten-translations.js","sourceRoot":"","sources":["../src/flatten-translations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"flatten-translations.js","sourceRoot":"","sources":["../src/flatten-translations.ts"],"names":[],"mappings":"AAEA,SAAS,IAAI,CAAC,MAA+B;IAC3C,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,OAAO,CAAC,MAAW,EAAE,MAA8B,EAAE,IAAI,GAAG,EAAE;IACrE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC9B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QAEtB,OAAO;KACR;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE;QACjD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAClC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,OAAO;KACR;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAA2D;IAC7F,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE;QACxD,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
package/lib/hooks.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
const [selected, setSelected] = (0, react_1.useState)(defaultSelected);
|
|
8
|
-
const { selectLanguage, setTranslations, getTranslations } = (0, piral_core_1.useActions)();
|
|
9
|
-
(0, react_1.useEffect)(() => {
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
import { useActions, useGlobalState } from 'piral-core';
|
|
3
|
+
export function useDynamicLanguage(defaultSelected, load) {
|
|
4
|
+
const [selected, setSelected] = useState(defaultSelected);
|
|
5
|
+
const { selectLanguage, setTranslations, getTranslations } = useActions();
|
|
6
|
+
useEffect(() => {
|
|
10
7
|
let active = true;
|
|
11
8
|
const current = getTranslations(selected);
|
|
12
9
|
selectLanguage(undefined);
|
|
@@ -22,11 +19,9 @@ function useDynamicLanguage(defaultSelected, load) {
|
|
|
22
19
|
}, [selected]);
|
|
23
20
|
return [selected, setSelected];
|
|
24
21
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
(0, piral_core_1.useGlobalState)((m) => m.language.selected);
|
|
22
|
+
export function useTranslate() {
|
|
23
|
+
const { translate } = useActions();
|
|
24
|
+
useGlobalState((m) => m.language.selected);
|
|
29
25
|
return translate;
|
|
30
26
|
}
|
|
31
|
-
exports.useTranslate = useTranslate;
|
|
32
27
|
//# sourceMappingURL=hooks.js.map
|
package/lib/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGxD,MAAM,UAAU,kBAAkB,CAChC,eAAuB,EACvB,IAAoB;IAEpB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC1D,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,UAAU,EAAE,CAAC;IAE1E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC1C,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAC1B,CAAC,MAAM,EAAE,EAAE;YACT,IAAI,MAAM,EAAE;gBACV,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAClC,cAAc,CAAC,QAAQ,CAAC,CAAC;aAC1B;QACH,CAAC,EACD,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAC5B,CAAC;QACF,OAAO,GAAG,EAAE;YACV,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,CAAC;IACnC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
tslib_1.__exportStar(require("./hooks"), exports);
|
|
8
|
-
tslib_1.__exportStar(require("./Languages"), exports);
|
|
9
|
-
tslib_1.__exportStar(require("./types"), exports);
|
|
1
|
+
export * from './components';
|
|
2
|
+
export * from './create';
|
|
3
|
+
export * from './current';
|
|
4
|
+
export * from './hooks';
|
|
5
|
+
export * from './Languages';
|
|
6
|
+
export * from './types';
|
|
10
7
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
|
package/lib/localize.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Localizer = void 0;
|
|
4
|
-
const flatten_translations_1 = require("./flatten-translations");
|
|
1
|
+
import { flattenTranslations } from './flatten-translations';
|
|
5
2
|
function defaultFallback(key, language) {
|
|
6
3
|
if (process.env.NODE_ENV === 'production') {
|
|
7
4
|
return language ? '...' : '';
|
|
@@ -21,7 +18,7 @@ function formatMessage(message, variables) {
|
|
|
21
18
|
return p1 in variables ? variables[p1] ?? '' : `{{${p1}}}`;
|
|
22
19
|
});
|
|
23
20
|
}
|
|
24
|
-
class Localizer {
|
|
21
|
+
export class Localizer {
|
|
25
22
|
/**
|
|
26
23
|
* Creates a new instance of a localizer.
|
|
27
24
|
*/
|
|
@@ -29,7 +26,7 @@ class Localizer {
|
|
|
29
26
|
this.language = language;
|
|
30
27
|
this.languages = languages;
|
|
31
28
|
this.fallback = fallback;
|
|
32
|
-
this.messages =
|
|
29
|
+
this.messages = flattenTranslations(messages);
|
|
33
30
|
}
|
|
34
31
|
/**
|
|
35
32
|
* Localizes the given key via the global translations.
|
|
@@ -67,5 +64,4 @@ class Localizer {
|
|
|
67
64
|
return translation && (variables ? formatMessage(translation, variables) : translation);
|
|
68
65
|
}
|
|
69
66
|
}
|
|
70
|
-
exports.Localizer = Localizer;
|
|
71
67
|
//# sourceMappingURL=localize.js.map
|
package/lib/localize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localize.js","sourceRoot":"","sources":["../src/localize.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"localize.js","sourceRoot":"","sources":["../src/localize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,SAAS,eAAe,CAAC,GAAW,EAAE,QAAgB;IACpD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;QACzC,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9B;SAAM;QACL,IAAI,QAAQ,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC,2BAA2B,GAAG,kBAAkB,QAAQ,IAAI,CAAC,CAAC;YAC3E,OAAO,KAAK,QAAQ,IAAI,GAAG,IAAI,CAAC;SACjC;aAAM;YACL,OAAO,EAAE,CAAC;SACX;KACF;AACH,CAAC;AAED,SAAS,aAAa,CAAmB,OAAe,EAAE,SAAY;IACpE,OAAO,OAAO,CAAC,OAAO,CAAC,6BAA6B,EAAE,CAAC,MAAc,EAAE,EAAU,EAAE,EAAE;QACnF,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAO,SAAS;IAGpB;;OAEG;IACH,YACE,QAA2D,EACpD,QAAgB,EAChB,SAAwB,EACvB,WAAgC,eAAe;QAFhD,aAAQ,GAAR,QAAQ,CAAQ;QAChB,cAAS,GAAT,SAAS,CAAe;QACvB,aAAQ,GAAR,QAAQ,CAAuC;QAEvD,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAmB,GAAW,EAAE,SAAa;QAChE,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;OAMG;IACI,aAAa,CAAmB,aAAmC,EAAE,GAAW,EAAE,SAAa;QACpG,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAErE,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;SAC1C;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,YAAY,CAAmB,GAAW,EAAE,SAAa;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAErE,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;SACpE;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,gBAAgB,CAAmB,QAA8B,EAAE,GAAW,EAAE,SAAa;QACnG,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,YAAY,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,YAAY,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;QACtD,OAAO,WAAW,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC1F,CAAC;CACF"}
|
package/lib/types.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "piral-translate",
|
|
3
|
-
"version": "1.6.0-beta.
|
|
3
|
+
"version": "1.6.0-beta.7244",
|
|
4
4
|
"description": "Plugin for providing translated messages in Piral.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"piral",
|
|
@@ -19,29 +19,19 @@
|
|
|
19
19
|
"author": "smapiot",
|
|
20
20
|
"homepage": "https://piral.io",
|
|
21
21
|
"license": "MIT",
|
|
22
|
-
"module": "
|
|
22
|
+
"module": "lib/index.js",
|
|
23
23
|
"main": "lib/index.js",
|
|
24
24
|
"typings": "lib/index.d.ts",
|
|
25
25
|
"exports": {
|
|
26
|
-
".":
|
|
27
|
-
"import": "./esm/index.js",
|
|
28
|
-
"require": "./lib/index.js"
|
|
29
|
-
},
|
|
30
|
-
"./esm/*": {
|
|
31
|
-
"import": "./esm/*"
|
|
32
|
-
},
|
|
26
|
+
".": "./lib/index.js",
|
|
33
27
|
"./lib/*": {
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
"./_/*": {
|
|
37
|
-
"import": "./esm/*.js",
|
|
38
|
-
"require": "./lib/*.js"
|
|
28
|
+
"import": "./lib/*",
|
|
29
|
+
"types": "./lib/*.d.ts"
|
|
39
30
|
},
|
|
40
31
|
"./package.json": "./package.json"
|
|
41
32
|
},
|
|
42
33
|
"sideEffects": false,
|
|
43
34
|
"files": [
|
|
44
|
-
"esm",
|
|
45
35
|
"lib",
|
|
46
36
|
"src",
|
|
47
37
|
"piral-translate.min.js"
|
|
@@ -55,10 +45,9 @@
|
|
|
55
45
|
},
|
|
56
46
|
"scripts": {
|
|
57
47
|
"cleanup": "rimraf esm lib piral-translate.min.js",
|
|
58
|
-
"build": "yarn build:bundle && yarn build:
|
|
48
|
+
"build": "yarn build:bundle && yarn build:esnext",
|
|
59
49
|
"build:bundle": "esbuild src/index.ts --outfile=piral-translate.min.js --bundle --external:piral-core --external:react --minify --global-name=piralTranslate",
|
|
60
|
-
"build:
|
|
61
|
-
"build:esnext": "tsc --project tsconfig.json --outDir esm --module esnext",
|
|
50
|
+
"build:esnext": "tsc --project tsconfig.json --outDir lib --module esnext",
|
|
62
51
|
"typedoc": "typedoc --json ../../../docs/types/piral-translate.json src --exclude \"src/**/*.test.*\"",
|
|
63
52
|
"test": "echo \"Error: run tests from root\" && exit 1"
|
|
64
53
|
},
|
|
@@ -68,8 +57,8 @@
|
|
|
68
57
|
"devDependencies": {
|
|
69
58
|
"@types/deepmerge": "^2.2.0",
|
|
70
59
|
"@types/react": "^18.0.0",
|
|
71
|
-
"piral-core": "1.6.0-beta.
|
|
60
|
+
"piral-core": "1.6.0-beta.7244",
|
|
72
61
|
"react": "^18.0.0"
|
|
73
62
|
},
|
|
74
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "65ac1291c3429dbf16079b4deb6138b24c5719f7"
|
|
75
64
|
}
|
package/esm/Languages.d.ts
DELETED
package/esm/Languages.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { useGlobalState } from 'piral-core';
|
|
3
|
-
import { PiralLanguagesPicker } from './components';
|
|
4
|
-
export const Languages = () => {
|
|
5
|
-
const { available, selected } = useGlobalState((m) => m.language);
|
|
6
|
-
return React.createElement(PiralLanguagesPicker, { selected: selected, available: available });
|
|
7
|
-
};
|
|
8
|
-
//# sourceMappingURL=Languages.js.map
|
package/esm/Languages.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Languages.js","sourceRoot":"","sources":["../src/Languages.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,CAAC,MAAM,SAAS,GAAa,GAAG,EAAE;IACtC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAClE,OAAO,oBAAC,oBAAoB,IAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAI,CAAC;AAC5E,CAAC,CAAC"}
|
package/esm/actions.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { GlobalStateContext } from 'piral-core';
|
|
2
|
-
import { Localizable } from './types';
|
|
3
|
-
export declare function createActions(localizer: Localizable): {
|
|
4
|
-
selectLanguage(ctx: GlobalStateContext, selected: string): void;
|
|
5
|
-
translate(_: GlobalStateContext, key: string, variables: any): string;
|
|
6
|
-
setTranslations(ctx: GlobalStateContext, language: string, data: any): void;
|
|
7
|
-
getTranslations(ctx: GlobalStateContext, language: string): {
|
|
8
|
-
global: import("./types").Translations;
|
|
9
|
-
locals: {
|
|
10
|
-
name: string;
|
|
11
|
-
value: import("./types").Translations;
|
|
12
|
-
}[];
|
|
13
|
-
};
|
|
14
|
-
};
|
package/esm/actions.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
export function createActions(localizer) {
|
|
2
|
-
return {
|
|
3
|
-
selectLanguage(ctx, selected) {
|
|
4
|
-
ctx.dispatch((state) => {
|
|
5
|
-
localizer.language = selected;
|
|
6
|
-
const previousLanguage = state.language.selected;
|
|
7
|
-
const currentLanguage = selected;
|
|
8
|
-
// emit this event *after* we changed the state container
|
|
9
|
-
setTimeout(() => {
|
|
10
|
-
ctx.emit('select-language', {
|
|
11
|
-
previousLanguage,
|
|
12
|
-
currentLanguage,
|
|
13
|
-
});
|
|
14
|
-
}, 0);
|
|
15
|
-
return {
|
|
16
|
-
...state,
|
|
17
|
-
language: {
|
|
18
|
-
...state.language,
|
|
19
|
-
loading: selected === undefined,
|
|
20
|
-
selected,
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
});
|
|
24
|
-
},
|
|
25
|
-
translate(_, key, variables) {
|
|
26
|
-
return localizer && localizer.localizeGlobal(key, variables);
|
|
27
|
-
},
|
|
28
|
-
setTranslations(ctx, language, data) {
|
|
29
|
-
localizer.messages[language] = data.global;
|
|
30
|
-
for (const item of data.locals) {
|
|
31
|
-
const api = ctx.apis[item.name];
|
|
32
|
-
if (api) {
|
|
33
|
-
const translations = api.getTranslations();
|
|
34
|
-
translations[language] = item.value;
|
|
35
|
-
api.setTranslations(translations);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
getTranslations(ctx, language) {
|
|
40
|
-
return {
|
|
41
|
-
global: localizer.messages[language],
|
|
42
|
-
locals: Object.keys(ctx.apis).map((name) => ({
|
|
43
|
-
name,
|
|
44
|
-
value: ctx.apis[name].getTranslations()[language],
|
|
45
|
-
})),
|
|
46
|
-
};
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=actions.js.map
|
package/esm/actions.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,aAAa,CAAC,SAAsB;IAClD,OAAO;QACL,cAAc,CAAC,GAAuB,EAAE,QAAgB;YACtD,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;gBACrB,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC9B,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACjD,MAAM,eAAe,GAAG,QAAQ,CAAC;gBAEjC,yDAAyD;gBACzD,UAAU,CAAC,GAAG,EAAE;oBACd,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE;wBAC1B,gBAAgB;wBAChB,eAAe;qBAChB,CAAC,CAAC;gBACL,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEN,OAAO;oBACL,GAAG,KAAK;oBACR,QAAQ,EAAE;wBACR,GAAG,KAAK,CAAC,QAAQ;wBACjB,OAAO,EAAE,QAAQ,KAAK,SAAS;wBAC/B,QAAQ;qBACT;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,SAAS,CAAC,CAAqB,EAAE,GAAW,EAAE,SAAc;YAC1D,OAAO,SAAS,IAAI,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC/D,CAAC;QACD,eAAe,CAAC,GAAuB,EAAE,QAAgB,EAAE,IAAI;YAC7D,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAE3C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC9B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEhC,IAAI,GAAG,EAAE;oBACP,MAAM,YAAY,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;oBAC3C,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;oBACpC,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBACnC;aACF;QACH,CAAC;QACD,eAAe,CAAC,GAAuB,EAAE,QAAgB;YACvD,OAAO;gBACL,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACpC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC3C,IAAI;oBACJ,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;iBAClD,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/esm/components.d.ts
DELETED
package/esm/components.js
DELETED
package/esm/components.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sourceRoot":"","sources":["../src/components.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC"}
|
package/esm/create.d.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import type { PiralPlugin } from 'piral-core';
|
|
2
|
-
import type { PiletLocaleApi, Localizable, AnyLocalizationMessages, TranslationFallback } from './types';
|
|
3
|
-
export interface RetrieveCurrentLanguage {
|
|
4
|
-
/**
|
|
5
|
-
* A function to identify the current language.
|
|
6
|
-
*/
|
|
7
|
-
(languages: Array<string>, defaultLanguage: string, fallbackLanguage?: string): string;
|
|
8
|
-
}
|
|
9
|
-
export interface LocaleConfig {
|
|
10
|
-
/**
|
|
11
|
-
* Sets the default (global) localization messages.
|
|
12
|
-
* @default {}
|
|
13
|
-
*/
|
|
14
|
-
messages?: AnyLocalizationMessages;
|
|
15
|
-
/**
|
|
16
|
-
* Sets the default language to use.
|
|
17
|
-
*/
|
|
18
|
-
language?: string | RetrieveCurrentLanguage;
|
|
19
|
-
/**
|
|
20
|
-
* Sets the optional fallback to use.
|
|
21
|
-
*/
|
|
22
|
-
fallback?: TranslationFallback;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Sets up a new localizer by using the given config.
|
|
26
|
-
* @param config The configuration for the new localizer.
|
|
27
|
-
*/
|
|
28
|
-
export declare function setupLocalizer(config?: LocaleConfig): Localizable;
|
|
29
|
-
/**
|
|
30
|
-
* Creates new Pilet API extensions for localization.
|
|
31
|
-
* @param localizer The specific localizer to be used, if any.
|
|
32
|
-
*/
|
|
33
|
-
export declare function createLocaleApi(localizer?: Localizable): PiralPlugin<PiletLocaleApi>;
|
package/esm/create.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import * as deepmerge from 'deepmerge';
|
|
2
|
-
import { createActions } from './actions';
|
|
3
|
-
import { Localizer } from './localize';
|
|
4
|
-
import { DefaultPicker } from './default';
|
|
5
|
-
import { flattenTranslations } from './flatten-translations';
|
|
6
|
-
/**
|
|
7
|
-
* Sets up a new localizer by using the given config.
|
|
8
|
-
* @param config The configuration for the new localizer.
|
|
9
|
-
*/
|
|
10
|
-
export function setupLocalizer(config = {}) {
|
|
11
|
-
const msgs = config.messages || {};
|
|
12
|
-
const languages = Object.keys(msgs);
|
|
13
|
-
const defaultLang = languages[0] || 'en';
|
|
14
|
-
const computeLang = config.language;
|
|
15
|
-
const usedLang = typeof computeLang === 'function' ? computeLang(languages, defaultLang, 'en') : computeLang;
|
|
16
|
-
const language = usedLang || defaultLang;
|
|
17
|
-
return new Localizer(msgs, language, languages.length ? languages : [language], config.fallback);
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Creates new Pilet API extensions for localization.
|
|
21
|
-
* @param localizer The specific localizer to be used, if any.
|
|
22
|
-
*/
|
|
23
|
-
export function createLocaleApi(localizer = setupLocalizer()) {
|
|
24
|
-
return (context) => {
|
|
25
|
-
context.defineActions(createActions(localizer));
|
|
26
|
-
context.dispatch((state) => ({
|
|
27
|
-
...state,
|
|
28
|
-
components: {
|
|
29
|
-
LanguagesPicker: DefaultPicker,
|
|
30
|
-
...state.components,
|
|
31
|
-
},
|
|
32
|
-
language: {
|
|
33
|
-
loading: false,
|
|
34
|
-
available: localizer.languages,
|
|
35
|
-
selected: localizer.language,
|
|
36
|
-
},
|
|
37
|
-
}));
|
|
38
|
-
return (api) => {
|
|
39
|
-
let localTranslations = {};
|
|
40
|
-
const setTranslations = (messages) => {
|
|
41
|
-
localTranslations = flattenTranslations(messages);
|
|
42
|
-
};
|
|
43
|
-
return {
|
|
44
|
-
addTranslations(messages, isOverriding = true) {
|
|
45
|
-
const current = localizer.messages;
|
|
46
|
-
setTranslations(deepmerge.all(isOverriding ? [current, ...messages] : [...messages, current]));
|
|
47
|
-
},
|
|
48
|
-
getCurrentLanguage(cb) {
|
|
49
|
-
const selected = context.readState((s) => s.language.selected);
|
|
50
|
-
if (cb) {
|
|
51
|
-
cb(selected);
|
|
52
|
-
const handler = (ev) => {
|
|
53
|
-
cb(ev.currentLanguage);
|
|
54
|
-
};
|
|
55
|
-
api.on('select-language', handler);
|
|
56
|
-
return () => api.off('select-language', handler);
|
|
57
|
-
}
|
|
58
|
-
return selected;
|
|
59
|
-
},
|
|
60
|
-
setTranslations,
|
|
61
|
-
getTranslations() {
|
|
62
|
-
return localTranslations;
|
|
63
|
-
},
|
|
64
|
-
translate(tag, variables) {
|
|
65
|
-
return localizer.localizeLocal(localTranslations, tag, variables);
|
|
66
|
-
},
|
|
67
|
-
};
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=create.js.map
|
package/esm/create.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
|
package/esm/current.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function getUserLocale(availableLocales: Array<string>, defaultLocale: string, fallbackLocale?: string): string;
|
package/esm/current.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { cookie, storage } from 'piral-core';
|
|
2
|
-
function getUserLocaleUnchecked(defaultLocale, remoteLocale) {
|
|
3
|
-
const storedLocale = cookie.getItem('_culture') || storage.getItem('locale');
|
|
4
|
-
if (storedLocale) {
|
|
5
|
-
return storedLocale;
|
|
6
|
-
}
|
|
7
|
-
else if (remoteLocale) {
|
|
8
|
-
return remoteLocale.toLowerCase().substring(0, 2);
|
|
9
|
-
}
|
|
10
|
-
else if (navigator.language) {
|
|
11
|
-
return navigator.language.substring(0, 2);
|
|
12
|
-
}
|
|
13
|
-
return defaultLocale;
|
|
14
|
-
}
|
|
15
|
-
export function getUserLocale(availableLocales, defaultLocale, fallbackLocale) {
|
|
16
|
-
const selected = getUserLocaleUnchecked(defaultLocale, fallbackLocale || '');
|
|
17
|
-
if (availableLocales.indexOf(selected) !== -1) {
|
|
18
|
-
return selected;
|
|
19
|
-
}
|
|
20
|
-
return defaultLocale;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=current.js.map
|
package/esm/current.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"current.js","sourceRoot":"","sources":["../src/current.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE7C,SAAS,sBAAsB,CAAC,aAAqB,EAAE,YAAoB;IACzE,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE7E,IAAI,YAAY,EAAE;QAChB,OAAO,YAAY,CAAC;KACrB;SAAM,IAAI,YAAY,EAAE;QACvB,OAAO,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACnD;SAAM,IAAI,SAAS,CAAC,QAAQ,EAAE;QAC7B,OAAO,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAC3C;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,gBAA+B,EAAE,aAAqB,EAAE,cAAuB;IAC3G,MAAM,QAAQ,GAAG,sBAAsB,CAAC,aAAa,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC;IAE7E,IAAI,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;QAC7C,OAAO,QAAQ,CAAC;KACjB;IAED,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
package/esm/default.d.ts
DELETED
package/esm/default.js
DELETED
package/esm/default.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"default.js","sourceRoot":"","sources":["../src/default.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,MAAM,CAAC,MAAM,aAAa,GAA6B,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
function flat(source) {
|
|
2
|
-
const target = {};
|
|
3
|
-
flatten(source, target);
|
|
4
|
-
return target;
|
|
5
|
-
}
|
|
6
|
-
function flatten(source, target, prop = '') {
|
|
7
|
-
if (typeof source === 'string') {
|
|
8
|
-
target[prop] = source;
|
|
9
|
-
return;
|
|
10
|
-
}
|
|
11
|
-
if (typeof source === 'object' && source !== null) {
|
|
12
|
-
Object.keys(source).forEach((key) => {
|
|
13
|
-
flatten(source[key], target, prop ? `${prop}.${key}` : key);
|
|
14
|
-
});
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
export function flattenTranslations(messages) {
|
|
19
|
-
return Object.fromEntries(Object.entries(messages).map(([language, translations]) => {
|
|
20
|
-
return [language, flat(translations)];
|
|
21
|
-
}));
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=flatten-translations.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flatten-translations.js","sourceRoot":"","sources":["../src/flatten-translations.ts"],"names":[],"mappings":"AAEA,SAAS,IAAI,CAAC,MAA+B;IAC3C,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,OAAO,CAAC,MAAW,EAAE,MAA8B,EAAE,IAAI,GAAG,EAAE;IACrE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC9B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QAEtB,OAAO;KACR;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE;QACjD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAClC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,OAAO;KACR;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAA2D;IAC7F,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE;QACxD,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
package/esm/hooks.d.ts
DELETED
package/esm/hooks.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { useEffect, useState } from 'react';
|
|
2
|
-
import { useActions, useGlobalState } from 'piral-core';
|
|
3
|
-
export function useDynamicLanguage(defaultSelected, load) {
|
|
4
|
-
const [selected, setSelected] = useState(defaultSelected);
|
|
5
|
-
const { selectLanguage, setTranslations, getTranslations } = useActions();
|
|
6
|
-
useEffect(() => {
|
|
7
|
-
let active = true;
|
|
8
|
-
const current = getTranslations(selected);
|
|
9
|
-
selectLanguage(undefined);
|
|
10
|
-
load(selected, current).then((result) => {
|
|
11
|
-
if (active) {
|
|
12
|
-
setTranslations(selected, result);
|
|
13
|
-
selectLanguage(selected);
|
|
14
|
-
}
|
|
15
|
-
}, (err) => console.error(err));
|
|
16
|
-
return () => {
|
|
17
|
-
active = false;
|
|
18
|
-
};
|
|
19
|
-
}, [selected]);
|
|
20
|
-
return [selected, setSelected];
|
|
21
|
-
}
|
|
22
|
-
export function useTranslate() {
|
|
23
|
-
const { translate } = useActions();
|
|
24
|
-
useGlobalState((m) => m.language.selected);
|
|
25
|
-
return translate;
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=hooks.js.map
|
package/esm/hooks.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGxD,MAAM,UAAU,kBAAkB,CAChC,eAAuB,EACvB,IAAoB;IAEpB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC1D,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,UAAU,EAAE,CAAC;IAE1E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC1C,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAC1B,CAAC,MAAM,EAAE,EAAE;YACT,IAAI,MAAM,EAAE;gBACV,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAClC,cAAc,CAAC,QAAQ,CAAC,CAAC;aAC1B;QACH,CAAC,EACD,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAC5B,CAAC;QACF,OAAO,GAAG,EAAE;YACV,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,CAAC;IACnC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/esm/index.d.ts
DELETED
package/esm/index.js
DELETED
package/esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
|
package/esm/localize.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { LocalizationMessages, Localizable, NestedLocalizationMessages, TranslationFallback } from './types';
|
|
2
|
-
export declare class Localizer implements Localizable {
|
|
3
|
-
language: string;
|
|
4
|
-
languages: Array<string>;
|
|
5
|
-
private fallback;
|
|
6
|
-
messages: LocalizationMessages;
|
|
7
|
-
/**
|
|
8
|
-
* Creates a new instance of a localizer.
|
|
9
|
-
*/
|
|
10
|
-
constructor(messages: LocalizationMessages | NestedLocalizationMessages, language: string, languages: Array<string>, fallback?: TranslationFallback);
|
|
11
|
-
/**
|
|
12
|
-
* Localizes the given key via the global translations.
|
|
13
|
-
* @param key The key of the translation snippet.
|
|
14
|
-
* @param variables The optional variables to use.
|
|
15
|
-
*/
|
|
16
|
-
localizeGlobal<T extends object>(key: string, variables?: T): string;
|
|
17
|
-
/**
|
|
18
|
-
* Localizes the given key via the local translations.
|
|
19
|
-
* Uses the global translations as fallback mechanism.
|
|
20
|
-
* @param localMessages The local translations to prefer.
|
|
21
|
-
* @param key The key of the translation snippet.
|
|
22
|
-
* @param variables The optional variables to use.
|
|
23
|
-
*/
|
|
24
|
-
localizeLocal<T extends object>(localMessages: LocalizationMessages, key: string, variables?: T): string;
|
|
25
|
-
private localizeBase;
|
|
26
|
-
private translateMessage;
|
|
27
|
-
}
|
package/esm/localize.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { flattenTranslations } from './flatten-translations';
|
|
2
|
-
function defaultFallback(key, language) {
|
|
3
|
-
if (process.env.NODE_ENV === 'production') {
|
|
4
|
-
return language ? '...' : '';
|
|
5
|
-
}
|
|
6
|
-
else {
|
|
7
|
-
if (language) {
|
|
8
|
-
console.warn(`Missing translation of "${key}" in language "${language}".`);
|
|
9
|
-
return `__${language}_${key}__`;
|
|
10
|
-
}
|
|
11
|
-
else {
|
|
12
|
-
return '';
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
function formatMessage(message, variables) {
|
|
17
|
-
return message.replace(/{{\s*([A-Za-z0-9_.]+)\s*}}/g, (_match, p1) => {
|
|
18
|
-
return p1 in variables ? variables[p1] ?? '' : `{{${p1}}}`;
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
export class Localizer {
|
|
22
|
-
/**
|
|
23
|
-
* Creates a new instance of a localizer.
|
|
24
|
-
*/
|
|
25
|
-
constructor(messages, language, languages, fallback = defaultFallback) {
|
|
26
|
-
this.language = language;
|
|
27
|
-
this.languages = languages;
|
|
28
|
-
this.fallback = fallback;
|
|
29
|
-
this.messages = flattenTranslations(messages);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Localizes the given key via the global translations.
|
|
33
|
-
* @param key The key of the translation snippet.
|
|
34
|
-
* @param variables The optional variables to use.
|
|
35
|
-
*/
|
|
36
|
-
localizeGlobal(key, variables) {
|
|
37
|
-
return this.localizeBase(key, variables);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Localizes the given key via the local translations.
|
|
41
|
-
* Uses the global translations as fallback mechanism.
|
|
42
|
-
* @param localMessages The local translations to prefer.
|
|
43
|
-
* @param key The key of the translation snippet.
|
|
44
|
-
* @param variables The optional variables to use.
|
|
45
|
-
*/
|
|
46
|
-
localizeLocal(localMessages, key, variables) {
|
|
47
|
-
const message = this.translateMessage(localMessages, key, variables);
|
|
48
|
-
if (message === undefined) {
|
|
49
|
-
return this.localizeBase(key, variables);
|
|
50
|
-
}
|
|
51
|
-
return message;
|
|
52
|
-
}
|
|
53
|
-
localizeBase(key, variables) {
|
|
54
|
-
const message = this.translateMessage(this.messages, key, variables);
|
|
55
|
-
if (message === undefined) {
|
|
56
|
-
return this.fallback(key, this.language, this.messages, variables);
|
|
57
|
-
}
|
|
58
|
-
return message;
|
|
59
|
-
}
|
|
60
|
-
translateMessage(messages, key, variables) {
|
|
61
|
-
const language = this.language;
|
|
62
|
-
const translations = language && messages[language];
|
|
63
|
-
const translation = translations && translations[key];
|
|
64
|
-
return translation && (variables ? formatMessage(translation, variables) : translation);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=localize.js.map
|
package/esm/localize.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"localize.js","sourceRoot":"","sources":["../src/localize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,SAAS,eAAe,CAAC,GAAW,EAAE,QAAgB;IACpD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;QACzC,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9B;SAAM;QACL,IAAI,QAAQ,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC,2BAA2B,GAAG,kBAAkB,QAAQ,IAAI,CAAC,CAAC;YAC3E,OAAO,KAAK,QAAQ,IAAI,GAAG,IAAI,CAAC;SACjC;aAAM;YACL,OAAO,EAAE,CAAC;SACX;KACF;AACH,CAAC;AAED,SAAS,aAAa,CAAmB,OAAe,EAAE,SAAY;IACpE,OAAO,OAAO,CAAC,OAAO,CAAC,6BAA6B,EAAE,CAAC,MAAc,EAAE,EAAU,EAAE,EAAE;QACnF,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAO,SAAS;IAGpB;;OAEG;IACH,YACE,QAA2D,EACpD,QAAgB,EAChB,SAAwB,EACvB,WAAgC,eAAe;QAFhD,aAAQ,GAAR,QAAQ,CAAQ;QAChB,cAAS,GAAT,SAAS,CAAe;QACvB,aAAQ,GAAR,QAAQ,CAAuC;QAEvD,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAmB,GAAW,EAAE,SAAa;QAChE,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;OAMG;IACI,aAAa,CAAmB,aAAmC,EAAE,GAAW,EAAE,SAAa;QACpG,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAErE,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;SAC1C;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,YAAY,CAAmB,GAAW,EAAE,SAAa;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAErE,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;SACpE;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,gBAAgB,CAAmB,QAA8B,EAAE,GAAW,EAAE,SAAa;QACnG,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,YAAY,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,YAAY,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;QACtD,OAAO,WAAW,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC1F,CAAC;CACF"}
|
package/esm/types.d.ts
DELETED
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import type { Disposable } from 'piral-core';
|
|
2
|
-
import type { ComponentType } from 'react';
|
|
3
|
-
declare module 'piral-core/lib/types/custom' {
|
|
4
|
-
interface PiletCustomApi extends PiletLocaleApi {
|
|
5
|
-
}
|
|
6
|
-
interface PiralCustomState {
|
|
7
|
-
/**
|
|
8
|
-
* Information for the language display.
|
|
9
|
-
*/
|
|
10
|
-
language: {
|
|
11
|
-
/**
|
|
12
|
-
* Gets if languages are currently loading.
|
|
13
|
-
*/
|
|
14
|
-
loading: boolean;
|
|
15
|
-
/**
|
|
16
|
-
* The selected, i.e., active, language.
|
|
17
|
-
*/
|
|
18
|
-
selected: string;
|
|
19
|
-
/**
|
|
20
|
-
* The available languages.
|
|
21
|
-
*/
|
|
22
|
-
available: Array<string>;
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
interface PiralCustomEventMap {
|
|
26
|
-
'select-language': PiralSelectLanguageEvent;
|
|
27
|
-
}
|
|
28
|
-
interface PiralCustomActions {
|
|
29
|
-
/**
|
|
30
|
-
* Changes the selected language.
|
|
31
|
-
* @param selected The selected language.
|
|
32
|
-
*/
|
|
33
|
-
selectLanguage(selected: string): void;
|
|
34
|
-
/**
|
|
35
|
-
* Gets the translation for the given key at the current
|
|
36
|
-
* language.
|
|
37
|
-
*/
|
|
38
|
-
translate(tag: string, variables?: Record<string, string>): string;
|
|
39
|
-
/**
|
|
40
|
-
* Sets the translations (both global and local) for
|
|
41
|
-
* the given language.
|
|
42
|
-
* @param language The language to set the translations for.
|
|
43
|
-
* @param data The global and local translations.
|
|
44
|
-
*/
|
|
45
|
-
setTranslations(language: string, data: LanguageData): void;
|
|
46
|
-
/**
|
|
47
|
-
* Gets the translations (both global and local) for
|
|
48
|
-
* the given language.
|
|
49
|
-
* @param language The language to get the translations for.
|
|
50
|
-
* @result The global and local translations.
|
|
51
|
-
*/
|
|
52
|
-
getTranslations(language: string): LanguageData;
|
|
53
|
-
}
|
|
54
|
-
interface PiralCustomComponentsState {
|
|
55
|
-
/**
|
|
56
|
-
* Represents the component for rendering a language selection.
|
|
57
|
-
*/
|
|
58
|
-
LanguagesPicker: ComponentType<LanguagesPickerProps>;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
export interface TranslationFallback {
|
|
62
|
-
(key: string, language: string, messages: LocalizationMessages, variables: any): string;
|
|
63
|
-
}
|
|
64
|
-
export interface PiralSelectLanguageEvent {
|
|
65
|
-
/**
|
|
66
|
-
* Gets the previously selected language.
|
|
67
|
-
*/
|
|
68
|
-
previousLanguage: string;
|
|
69
|
-
/**
|
|
70
|
-
* Gets the currently selected language.
|
|
71
|
-
*/
|
|
72
|
-
currentLanguage: string;
|
|
73
|
-
}
|
|
74
|
-
export interface LanguagesPickerProps {
|
|
75
|
-
/**
|
|
76
|
-
* The currently selected language.
|
|
77
|
-
*/
|
|
78
|
-
selected: string;
|
|
79
|
-
/**
|
|
80
|
-
* The languages available for selection.
|
|
81
|
-
*/
|
|
82
|
-
available: Array<string>;
|
|
83
|
-
}
|
|
84
|
-
export interface LanguageData {
|
|
85
|
-
global: Translations;
|
|
86
|
-
locals: Array<{
|
|
87
|
-
name: string;
|
|
88
|
-
value: Translations;
|
|
89
|
-
}>;
|
|
90
|
-
}
|
|
91
|
-
export interface Translations {
|
|
92
|
-
/**
|
|
93
|
-
* The available wordings (tag to translation).
|
|
94
|
-
*/
|
|
95
|
-
[tag: string]: string;
|
|
96
|
-
}
|
|
97
|
-
export interface NestedTranslations {
|
|
98
|
-
/**
|
|
99
|
-
* The available wordings (tag to translation or nested translations).
|
|
100
|
-
*/
|
|
101
|
-
[tag: string]: string | NestedTranslations;
|
|
102
|
-
}
|
|
103
|
-
export interface LanguageLoader {
|
|
104
|
-
(language: string, current: LanguageData): Promise<LanguageData>;
|
|
105
|
-
}
|
|
106
|
-
export interface Localizable {
|
|
107
|
-
messages: LocalizationMessages;
|
|
108
|
-
language: string;
|
|
109
|
-
languages: Array<string>;
|
|
110
|
-
localizeGlobal<T extends object>(key: string, variables?: T): string;
|
|
111
|
-
localizeLocal<T extends object>(localMessages: LocalizationMessages, key: string, variables?: T): string;
|
|
112
|
-
}
|
|
113
|
-
export interface LocalizationMessages {
|
|
114
|
-
/**
|
|
115
|
-
* The available languages (lang to wordings).
|
|
116
|
-
*/
|
|
117
|
-
[lang: string]: Translations;
|
|
118
|
-
}
|
|
119
|
-
export interface NestedLocalizationMessages {
|
|
120
|
-
/**
|
|
121
|
-
* The available languages (lang to wordings or nested wordings).
|
|
122
|
-
*/
|
|
123
|
-
[lang: string]: NestedTranslations;
|
|
124
|
-
}
|
|
125
|
-
export type AnyLocalizationMessages = LocalizationMessages | NestedLocalizationMessages;
|
|
126
|
-
export interface PiletLocaleApi {
|
|
127
|
-
/**
|
|
128
|
-
* Adds a list of translations to the existing translations.
|
|
129
|
-
*
|
|
130
|
-
* Internally, setTranslations is used, which means the translations will be exclusively used for
|
|
131
|
-
* retrieving translations for the pilet.
|
|
132
|
-
*
|
|
133
|
-
* @param messagesList The list of messages that extend the existing translations
|
|
134
|
-
* @param [isOverriding=true] Indicates whether the new translations overwrite the existing translations
|
|
135
|
-
*/
|
|
136
|
-
addTranslations(messagesList: Array<AnyLocalizationMessages>, isOverriding?: boolean): void;
|
|
137
|
-
/**
|
|
138
|
-
* Gets the currently selected language directly.
|
|
139
|
-
*/
|
|
140
|
-
getCurrentLanguage(): string;
|
|
141
|
-
/**
|
|
142
|
-
* Gets the currently selected language in a callback that is also invoked when the
|
|
143
|
-
* selected language changes. Returns a disposable to stop the notifications.
|
|
144
|
-
*/
|
|
145
|
-
getCurrentLanguage(cb: (currently: string) => void): Disposable;
|
|
146
|
-
/**
|
|
147
|
-
* Translates the given tag (using the optional variables) into a string using the current language.
|
|
148
|
-
* The used template can contain placeholders in form of `{{variableName}}`.
|
|
149
|
-
* @param tag The tag to translate.
|
|
150
|
-
* @param variables The optional variables to fill into the temnplate.
|
|
151
|
-
*/
|
|
152
|
-
translate<T extends object = Record<string, string>>(tag: string, variables?: T): string;
|
|
153
|
-
/**
|
|
154
|
-
* Provides translations to the application.
|
|
155
|
-
* The translations will be exclusively used for retrieving translations for the pilet.
|
|
156
|
-
* @param messages The messages to use as translation basis.
|
|
157
|
-
*/
|
|
158
|
-
setTranslations(messages: AnyLocalizationMessages): void;
|
|
159
|
-
/**
|
|
160
|
-
* Gets the currently provided translations by the pilet.
|
|
161
|
-
*/
|
|
162
|
-
getTranslations(): LocalizationMessages;
|
|
163
|
-
}
|
package/esm/types.js
DELETED
package/esm/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|