piral-translate 1.0.0-pre.2217 → 1.0.0

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.
Files changed (53) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +12 -2
  3. package/esm/Languages.js +2 -2
  4. package/esm/Languages.js.map +1 -1
  5. package/esm/actions.js +17 -19
  6. package/esm/actions.js.map +1 -1
  7. package/esm/components.d.ts +2 -3
  8. package/esm/components.js +1 -1
  9. package/esm/components.js.map +1 -1
  10. package/esm/create.js +39 -19
  11. package/esm/create.js.map +1 -1
  12. package/esm/current.js +2 -2
  13. package/esm/current.js.map +1 -1
  14. package/esm/default.d.ts +2 -2
  15. package/esm/default.js +1 -1
  16. package/esm/default.js.map +1 -1
  17. package/esm/hooks.js +12 -10
  18. package/esm/hooks.js.map +1 -1
  19. package/esm/localize.d.ts +2 -2
  20. package/esm/localize.js +20 -23
  21. package/esm/localize.js.map +1 -1
  22. package/esm/types.d.ts +24 -4
  23. package/lib/Languages.js +6 -5
  24. package/lib/Languages.js.map +1 -1
  25. package/lib/actions.js +17 -19
  26. package/lib/actions.js.map +1 -1
  27. package/lib/components.d.ts +2 -3
  28. package/lib/components.js +2 -2
  29. package/lib/components.js.map +1 -1
  30. package/lib/create.js +43 -23
  31. package/lib/create.js.map +1 -1
  32. package/lib/current.js +3 -3
  33. package/lib/current.js.map +1 -1
  34. package/lib/default.d.ts +2 -2
  35. package/lib/default.js +3 -2
  36. package/lib/default.js.map +1 -1
  37. package/lib/hooks.js +14 -12
  38. package/lib/hooks.js.map +1 -1
  39. package/lib/index.js +1 -1
  40. package/lib/localize.d.ts +2 -2
  41. package/lib/localize.js +20 -22
  42. package/lib/localize.js.map +1 -1
  43. package/lib/types.d.ts +24 -4
  44. package/package.json +33 -6
  45. package/piral-translate.min.js +1 -0
  46. package/src/actions.test.ts +134 -5
  47. package/src/components.tsx +1 -3
  48. package/src/create.test.ts +122 -3
  49. package/src/create.ts +32 -3
  50. package/src/default.tsx +2 -1
  51. package/src/hooks.ts +3 -1
  52. package/src/localize.ts +5 -5
  53. package/src/types.ts +24 -5
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2019 - 2021 smapiot
3
+ Copyright (c) 2019 - 2023 smapiot
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
- [![Piral Logo](https://github.com/smapiot/piral/raw/master/docs/assets/logo.png)](https://piral.io)
1
+ [![Piral Logo](https://github.com/smapiot/piral/raw/main/docs/assets/logo.png)](https://piral.io)
2
2
 
3
- # [Piral Translate](https://piral.io) · [![GitHub License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/smapiot/piral/blob/master/LICENSE) [![npm version](https://img.shields.io/npm/v/piral-translate.svg?style=flat)](https://www.npmjs.com/package/piral-translate) [![tested with jest](https://img.shields.io/badge/tested_with-jest-99424f.svg)](https://jestjs.io) [![Gitter Chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/piral-io/community)
3
+ # [Piral Translate](https://piral.io) · [![GitHub License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/smapiot/piral/blob/main/LICENSE) [![npm version](https://img.shields.io/npm/v/piral-translate.svg?style=flat)](https://www.npmjs.com/package/piral-translate) [![tested with jest](https://img.shields.io/badge/tested_with-jest-99424f.svg)](https://jestjs.io) [![Gitter Chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/piral-io/community)
4
4
 
5
5
  This is a plugin that only has a peer dependency to `piral-core`. What `piral-translate` brings to the table is a set of Pilet API extensions that is used by `piral`. The set features a simple yet sufficient translation system.
6
6
 
@@ -10,6 +10,12 @@ One of the key non-functional requirements of many applications is to be localiz
10
10
 
11
11
  Alternatives: Use a library such as `i18next` as a shared library. Choose one that makes working with your content authors or translation team easier.
12
12
 
13
+ ## Video
14
+
15
+ We also have a video for this plugin:
16
+
17
+ @[youtube](https://youtu.be/Hh-CrOTDSnA)
18
+
13
19
  ## Documentation
14
20
 
15
21
  The following functions are brought to the Pilet API.
@@ -28,6 +34,10 @@ Sets the translations (custom language to key to string mapping) for the pilet.
28
34
 
29
35
  Gets the translations defined in the pilet.
30
36
 
37
+ ### `addTranslations()`
38
+
39
+ Adds a list of translations (custom language to key to string mapping) to the existing translations for the pilet.
40
+
31
41
  ## Usage
32
42
 
33
43
  ::: summary: For pilet authors
package/esm/Languages.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import { useGlobalState } from 'piral-core';
3
3
  import { PiralLanguagesPicker } from './components';
4
- export var Languages = function () {
5
- var _a = useGlobalState(function (m) { return m.language; }), available = _a.available, selected = _a.selected;
4
+ export const Languages = () => {
5
+ const { available, selected } = useGlobalState((m) => m.language);
6
6
  return React.createElement(PiralLanguagesPicker, { selected: selected, available: available });
7
7
  };
8
8
  //# sourceMappingURL=Languages.js.map
@@ -1 +1 @@
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,IAAM,SAAS,GAAa;IAC3B,IAAA,KAA0B,cAAc,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,QAAQ,EAAV,CAAU,CAAC,EAAzD,SAAS,eAAA,EAAE,QAAQ,cAAsC,CAAC;IAClE,OAAO,oBAAC,oBAAoB,IAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAI,CAAC;AAC5E,CAAC,CAAC"}
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.js CHANGED
@@ -1,43 +1,41 @@
1
- import { __assign } from "tslib";
2
1
  export function createActions(localizer) {
3
2
  return {
4
- selectLanguage: function (ctx, selected) {
5
- ctx.dispatch(function (state) {
3
+ selectLanguage(ctx, selected) {
4
+ ctx.dispatch((state) => {
6
5
  localizer.language = selected;
7
- var previousLanguage = state.language.selected;
8
- var currentLanguage = selected;
6
+ const previousLanguage = state.language.selected;
7
+ const currentLanguage = selected;
9
8
  // emit this event *after* we changed the state container
10
- setTimeout(function () {
9
+ setTimeout(() => {
11
10
  ctx.emit('select-language', {
12
- previousLanguage: previousLanguage,
13
- currentLanguage: currentLanguage,
11
+ previousLanguage,
12
+ currentLanguage,
14
13
  });
15
14
  }, 0);
16
- return __assign(__assign({}, state), { language: __assign(__assign({}, state.language), { loading: selected === undefined, selected: selected }) });
15
+ return Object.assign(Object.assign({}, state), { language: Object.assign(Object.assign({}, state.language), { loading: selected === undefined, selected }) });
17
16
  });
18
17
  },
19
- translate: function (_, key, variables) {
18
+ translate(_, key, variables) {
20
19
  return localizer && localizer.localizeGlobal(key, variables);
21
20
  },
22
- setTranslations: function (ctx, language, data) {
21
+ setTranslations(ctx, language, data) {
23
22
  localizer.messages[language] = data.global;
24
- for (var _i = 0, _a = data.locals; _i < _a.length; _i++) {
25
- var item = _a[_i];
26
- var api = ctx.apis[item.name];
23
+ for (const item of data.locals) {
24
+ const api = ctx.apis[item.name];
27
25
  if (api) {
28
- var translations = api.getTranslations();
26
+ const translations = api.getTranslations();
29
27
  translations[language] = item.value;
30
28
  api.setTranslations(translations);
31
29
  }
32
30
  }
33
31
  },
34
- getTranslations: function (ctx, language) {
32
+ getTranslations(ctx, language) {
35
33
  return {
36
34
  global: localizer.messages[language],
37
- locals: Object.keys(ctx.apis).map(function (name) { return ({
38
- name: name,
35
+ locals: Object.keys(ctx.apis).map((name) => ({
36
+ name,
39
37
  value: ctx.apis[name].getTranslations()[language],
40
- }); }),
38
+ })),
41
39
  };
42
40
  },
43
41
  };
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":";AAGA,MAAM,UAAU,aAAa,CAAC,SAAsB;IAClD,OAAO;QACL,cAAc,EAAd,UAAe,GAAuB,EAAE,QAAgB;YACtD,GAAG,CAAC,QAAQ,CAAC,UAAC,KAAK;gBACjB,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC9B,IAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACjD,IAAM,eAAe,GAAG,QAAQ,CAAC;gBAEjC,yDAAyD;gBACzD,UAAU,CAAC;oBACT,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE;wBAC1B,gBAAgB,kBAAA;wBAChB,eAAe,iBAAA;qBAChB,CAAC,CAAC;gBACL,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEN,6BACK,KAAK,KACR,QAAQ,wBACH,KAAK,CAAC,QAAQ,KACjB,OAAO,EAAE,QAAQ,KAAK,SAAS,EAC/B,QAAQ,UAAA,OAEV;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,SAAS,EAAT,UAAU,CAAqB,EAAE,GAAW,EAAE,SAAc;YAC1D,OAAO,SAAS,IAAI,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC/D,CAAC;QACD,eAAe,EAAf,UAAgB,GAAuB,EAAE,QAAgB,EAAE,IAAI;YAC7D,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAE3C,KAAmB,UAAW,EAAX,KAAA,IAAI,CAAC,MAAM,EAAX,cAAW,EAAX,IAAW,EAAE;gBAA3B,IAAM,IAAI,SAAA;gBACb,IAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEhC,IAAI,GAAG,EAAE;oBACP,IAAM,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,EAAf,UAAgB,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,UAAC,IAAI,IAAK,OAAA,CAAC;oBAC3C,IAAI,MAAA;oBACJ,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;iBAClD,CAAC,EAH0C,CAG1C,CAAC;aACJ,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
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,uCACK,KAAK,KACR,QAAQ,kCACH,KAAK,CAAC,QAAQ,KACjB,OAAO,EAAE,QAAQ,KAAK,SAAS,EAC/B,QAAQ,OAEV;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"}
@@ -1,3 +1,2 @@
1
- import * as React from 'react';
2
- import { LanguagesPickerProps } from './types';
3
- export declare const PiralLanguagesPicker: React.ComponentType<LanguagesPickerProps>;
1
+ /// <reference types="react" />
2
+ export declare const PiralLanguagesPicker: import("react").ComponentType<import("./types").LanguagesPickerProps>;
package/esm/components.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import { getPiralComponent } from 'piral-core';
2
- export var PiralLanguagesPicker = getPiralComponent('LanguagesPicker');
2
+ export const PiralLanguagesPicker = getPiralComponent('LanguagesPicker');
3
3
  //# sourceMappingURL=components.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sourceRoot":"","sources":["../src/components.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,MAAM,CAAC,IAAM,oBAAoB,GAA8C,iBAAiB,CAAC,iBAAiB,CAAC,CAAC"}
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.js CHANGED
@@ -1,4 +1,4 @@
1
- import { __assign } from "tslib";
1
+ import * as deepmerge from 'deepmerge';
2
2
  import { createActions } from './actions';
3
3
  import { Localizer } from './localize';
4
4
  import { DefaultPicker } from './default';
@@ -6,39 +6,59 @@ import { DefaultPicker } from './default';
6
6
  * Sets up a new localizer by using the given config.
7
7
  * @param config The configuration for the new localizer.
8
8
  */
9
- export function setupLocalizer(config) {
10
- if (config === void 0) { config = {}; }
11
- var msgs = config.messages || {};
12
- var languages = Object.keys(msgs);
13
- var defaultLang = languages[0] || 'en';
14
- var computeLang = config.language;
15
- var usedLang = typeof computeLang === 'function' ? computeLang(languages, defaultLang, 'en') : computeLang;
16
- var language = usedLang || defaultLang;
9
+ export function setupLocalizer(config = {}) {
10
+ const msgs = config.messages || {};
11
+ const languages = Object.keys(msgs);
12
+ const defaultLang = languages[0] || 'en';
13
+ const computeLang = config.language;
14
+ const usedLang = typeof computeLang === 'function' ? computeLang(languages, defaultLang, 'en') : computeLang;
15
+ const language = usedLang || defaultLang;
17
16
  return new Localizer(msgs, language, languages.length ? languages : [language], config.fallback);
18
17
  }
19
18
  /**
20
19
  * Creates new Pilet API extensions for localization.
21
20
  * @param localizer The specific localizer to be used, if any.
22
21
  */
23
- export function createLocaleApi(localizer) {
24
- if (localizer === void 0) { localizer = setupLocalizer(); }
25
- return function (context) {
22
+ export function createLocaleApi(localizer = setupLocalizer()) {
23
+ return (context) => {
26
24
  context.defineActions(createActions(localizer));
27
- context.dispatch(function (state) { return (__assign(__assign({}, state), { components: __assign(__assign({}, state.components), { LanguagesPicker: DefaultPicker }), language: {
25
+ context.dispatch((state) => (Object.assign(Object.assign({}, state), { components: Object.assign({ LanguagesPicker: DefaultPicker }, state.components), language: {
28
26
  loading: false,
29
27
  available: localizer.languages,
30
28
  selected: localizer.language,
31
- } })); });
32
- return function () {
33
- var localTranslations = {};
29
+ } })));
30
+ return (api) => {
31
+ let localTranslations = {};
34
32
  return {
35
- setTranslations: function (messages) {
33
+ addTranslations(messages, isOverriding = true) {
34
+ const messagesToMerge = messages;
35
+ if (isOverriding) {
36
+ messagesToMerge.unshift(localizer.messages);
37
+ }
38
+ else {
39
+ messagesToMerge.push(localizer.messages);
40
+ }
41
+ this.setTranslations(deepmerge.all(messagesToMerge));
42
+ },
43
+ getCurrentLanguage(cb) {
44
+ const selected = context.readState((s) => s.language.selected);
45
+ if (cb) {
46
+ cb(selected);
47
+ const handler = (ev) => {
48
+ cb(ev.currentLanguage);
49
+ };
50
+ api.on('select-language', handler);
51
+ return () => api.off('select-language', handler);
52
+ }
53
+ return selected;
54
+ },
55
+ setTranslations(messages) {
36
56
  localTranslations = messages;
37
57
  },
38
- getTranslations: function () {
58
+ getTranslations() {
39
59
  return localTranslations;
40
60
  },
41
- translate: function (tag, variables) {
61
+ translate(tag, variables) {
42
62
  return localizer.localizeLocal(localTranslations, tag, variables);
43
63
  },
44
64
  };
package/esm/create.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AA8B1C;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAyB;IAAzB,uBAAA,EAAA,WAAyB;IACtD,IAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IACnC,IAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,IAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACzC,IAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;IACpC,IAAM,QAAQ,GAAG,OAAO,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IAC7G,IAAM,QAAQ,GAAG,QAAQ,IAAI,WAAW,CAAC;IACzC,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AACnG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,SAAyC;IAAzC,0BAAA,EAAA,YAAyB,cAAc,EAAE;IACvE,OAAO,UAAC,OAAO;QACb,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QAEhD,OAAO,CAAC,QAAQ,CAAC,UAAC,KAAK,IAAK,OAAA,uBACvB,KAAK,KACR,UAAU,wBACL,KAAK,CAAC,UAAU,KACnB,eAAe,EAAE,aAAa,KAEhC,QAAQ,EAAE;gBACR,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,QAAQ,EAAE,SAAS,CAAC,QAAQ;aAC7B,IACD,EAX0B,CAW1B,CAAC,CAAC;QAEJ,OAAO;YACL,IAAI,iBAAiB,GAAyB,EAAE,CAAC;YAEjD,OAAO;gBACL,eAAe,YAAC,QAAQ;oBACtB,iBAAiB,GAAG,QAAQ,CAAC;gBAC/B,CAAC;gBACD,eAAe;oBACb,OAAO,iBAAiB,CAAC;gBAC3B,CAAC;gBACD,SAAS,YAAC,GAAG,EAAE,SAAS;oBACtB,OAAO,SAAS,CAAC,aAAa,CAAC,iBAAiB,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;gBACpE,CAAC;aACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
package/esm/current.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { cookie, storage } from 'piral-core';
2
2
  function getUserLocaleUnchecked(defaultLocale, remoteLocale) {
3
- var storedLocale = cookie.getItem('_culture') || storage.getItem('locale');
3
+ const storedLocale = cookie.getItem('_culture') || storage.getItem('locale');
4
4
  if (storedLocale) {
5
5
  return storedLocale;
6
6
  }
@@ -13,7 +13,7 @@ function getUserLocaleUnchecked(defaultLocale, remoteLocale) {
13
13
  return defaultLocale;
14
14
  }
15
15
  export function getUserLocale(availableLocales, defaultLocale, fallbackLocale) {
16
- var selected = getUserLocaleUnchecked(defaultLocale, fallbackLocale || '');
16
+ const selected = getUserLocaleUnchecked(defaultLocale, fallbackLocale || '');
17
17
  if (availableLocales.indexOf(selected) !== -1) {
18
18
  return selected;
19
19
  }
@@ -1 +1 @@
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,IAAM,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,IAAM,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"}
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 CHANGED
@@ -1,3 +1,3 @@
1
- /// <reference types="react" />
1
+ import type { FC } from 'react';
2
2
  import { LanguagesPickerProps } from './types';
3
- export declare const DefaultPicker: React.FC<LanguagesPickerProps>;
3
+ export declare const DefaultPicker: FC<LanguagesPickerProps>;
package/esm/default.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import { defaultRender } from 'piral-core';
2
- export var DefaultPicker = function (props) { return defaultRender(undefined); };
2
+ export const DefaultPicker = (props) => defaultRender(undefined);
3
3
  //# sourceMappingURL=default.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"default.js","sourceRoot":"","sources":["../src/default.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,MAAM,CAAC,IAAM,aAAa,GAAmC,UAAC,KAAK,IAAK,OAAA,aAAa,CAAC,SAAS,CAAC,EAAxB,CAAwB,CAAC"}
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"}
package/esm/hooks.js CHANGED
@@ -1,25 +1,27 @@
1
1
  import { useEffect, useState } from 'react';
2
2
  import { useActions, useGlobalState } from 'piral-core';
3
3
  export function useDynamicLanguage(defaultSelected, load) {
4
- var _a = useState(defaultSelected), selected = _a[0], setSelected = _a[1];
5
- var _b = useActions(), selectLanguage = _b.selectLanguage, setTranslations = _b.setTranslations, getTranslations = _b.getTranslations;
6
- useEffect(function () {
7
- var active = true;
8
- var current = getTranslations(selected);
4
+ const [selected, setSelected] = useState(defaultSelected);
5
+ const { selectLanguage, setTranslations, getTranslations } = useActions();
6
+ useEffect(() => {
7
+ let active = true;
8
+ const current = getTranslations(selected);
9
9
  selectLanguage(undefined);
10
- load(selected, current).then(function (result) {
10
+ load(selected, current).then((result) => {
11
11
  if (active) {
12
12
  setTranslations(selected, result);
13
13
  selectLanguage(selected);
14
14
  }
15
- }, function (err) { return console.error(err); });
16
- return function () { return (active = false); };
15
+ }, (err) => console.error(err));
16
+ return () => {
17
+ active = false;
18
+ };
17
19
  }, [selected]);
18
20
  return [selected, setSelected];
19
21
  }
20
22
  export function useTranslate() {
21
- var translate = useActions().translate;
22
- useGlobalState(function (m) { return m.language.selected; });
23
+ const { translate } = useActions();
24
+ useGlobalState((m) => m.language.selected);
23
25
  return translate;
24
26
  }
25
27
  //# sourceMappingURL=hooks.js.map
package/esm/hooks.js.map CHANGED
@@ -1 +1 @@
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;IAEd,IAAA,KAA0B,QAAQ,CAAC,eAAe,CAAC,EAAlD,QAAQ,QAAA,EAAE,WAAW,QAA6B,CAAC;IACpD,IAAA,KAAuD,UAAU,EAAE,EAAjE,cAAc,oBAAA,EAAE,eAAe,qBAAA,EAAE,eAAe,qBAAiB,CAAC;IAE1E,SAAS,CAAC;QACR,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC1C,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAC1B,UAAC,MAAM;YACL,IAAI,MAAM,EAAE;gBACV,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAClC,cAAc,CAAC,QAAQ,CAAC,CAAC;aAC1B;QACH,CAAC,EACD,UAAC,GAAG,IAAK,OAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAlB,CAAkB,CAC5B,CAAC;QACF,OAAO,cAAM,OAAA,CAAC,MAAM,GAAG,KAAK,CAAC,EAAhB,CAAgB,CAAC;IAChC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,YAAY;IAClB,IAAA,SAAS,GAAK,UAAU,EAAE,UAAjB,CAAkB;IACnC,cAAc,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAnB,CAAmB,CAAC,CAAC;IAC3C,OAAO,SAAS,CAAC;AACnB,CAAC"}
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/localize.d.ts CHANGED
@@ -14,7 +14,7 @@ export declare class Localizer implements Localizable {
14
14
  * @param key The key of the translation snippet.
15
15
  * @param variables The optional variables to use.
16
16
  */
17
- localizeGlobal<T>(key: string, variables?: T): string;
17
+ localizeGlobal<T extends object>(key: string, variables?: T): string;
18
18
  /**
19
19
  * Localizes the given key via the local translations.
20
20
  * Uses the global translations as fallback mechanism.
@@ -22,7 +22,7 @@ export declare class Localizer implements Localizable {
22
22
  * @param key The key of the translation snippet.
23
23
  * @param variables The optional variables to use.
24
24
  */
25
- localizeLocal<T>(localMessages: LocalizationMessages, key: string, variables?: T): string;
25
+ localizeLocal<T extends object>(localMessages: LocalizationMessages, key: string, variables?: T): string;
26
26
  private localizeBase;
27
27
  private translateMessage;
28
28
  }
package/esm/localize.js CHANGED
@@ -4,8 +4,8 @@ function defaultFallback(key, language) {
4
4
  }
5
5
  else {
6
6
  if (language) {
7
- console.warn("Missing translation of \"" + key + "\" in language \"" + language + "\".");
8
- return "__" + language + "_" + key + "__";
7
+ console.warn(`Missing translation of "${key}" in language "${language}".`);
8
+ return `__${language}_${key}__`;
9
9
  }
10
10
  else {
11
11
  return '';
@@ -13,16 +13,15 @@ function defaultFallback(key, language) {
13
13
  }
14
14
  }
15
15
  function formatMessage(message, variables) {
16
- return message.replace(/{{\s*([A-Za-z0-9_.]+)\s*}}/g, function (_match, p1) {
17
- return p1 in variables ? variables[p1] || '' : "{{" + p1 + "}}";
16
+ return message.replace(/{{\s*([A-Za-z0-9_.]+)\s*}}/g, (_match, p1) => {
17
+ return p1 in variables ? variables[p1] || '' : `{{${p1}}}`;
18
18
  });
19
19
  }
20
- var Localizer = /** @class */ (function () {
20
+ export class Localizer {
21
21
  /**
22
22
  * Creates a new instance of a localizer.
23
23
  */
24
- function Localizer(messages, language, languages, fallback) {
25
- if (fallback === void 0) { fallback = defaultFallback; }
24
+ constructor(messages, language, languages, fallback = defaultFallback) {
26
25
  this.messages = messages;
27
26
  this.language = language;
28
27
  this.languages = languages;
@@ -33,9 +32,9 @@ var Localizer = /** @class */ (function () {
33
32
  * @param key The key of the translation snippet.
34
33
  * @param variables The optional variables to use.
35
34
  */
36
- Localizer.prototype.localizeGlobal = function (key, variables) {
35
+ localizeGlobal(key, variables) {
37
36
  return this.localizeBase(key, variables);
38
- };
37
+ }
39
38
  /**
40
39
  * Localizes the given key via the local translations.
41
40
  * Uses the global translations as fallback mechanism.
@@ -43,27 +42,25 @@ var Localizer = /** @class */ (function () {
43
42
  * @param key The key of the translation snippet.
44
43
  * @param variables The optional variables to use.
45
44
  */
46
- Localizer.prototype.localizeLocal = function (localMessages, key, variables) {
47
- var message = this.translateMessage(localMessages, key, variables);
45
+ localizeLocal(localMessages, key, variables) {
46
+ const message = this.translateMessage(localMessages, key, variables);
48
47
  if (message === undefined) {
49
48
  return this.localizeBase(key, variables);
50
49
  }
51
50
  return message;
52
- };
53
- Localizer.prototype.localizeBase = function (key, variables) {
54
- var message = this.translateMessage(this.messages, key, variables);
51
+ }
52
+ localizeBase(key, variables) {
53
+ const message = this.translateMessage(this.messages, key, variables);
55
54
  if (message === undefined) {
56
55
  return this.fallback(key, this.language);
57
56
  }
58
57
  return message;
59
- };
60
- Localizer.prototype.translateMessage = function (messages, key, variables) {
61
- var language = this.language;
62
- var translations = language && messages[language];
63
- var translation = translations && translations[key];
58
+ }
59
+ translateMessage(messages, key, variables) {
60
+ const language = this.language;
61
+ const translations = language && messages[language];
62
+ const translation = translations && translations[key];
64
63
  return translation && (variables ? formatMessage(translation, variables) : translation);
65
- };
66
- return Localizer;
67
- }());
68
- export { Localizer };
64
+ }
65
+ }
69
66
  //# sourceMappingURL=localize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"localize.js","sourceRoot":"","sources":["../src/localize.ts"],"names":[],"mappings":"AAEA,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,8BAA2B,GAAG,yBAAkB,QAAQ,QAAI,CAAC,CAAC;YAC3E,OAAO,OAAK,QAAQ,SAAI,GAAG,OAAI,CAAC;SACjC;aAAM;YACL,OAAO,EAAE,CAAC;SACX;KACF;AACH,CAAC;AAED,SAAS,aAAa,CAAI,OAAe,EAAE,SAAY;IACrD,OAAO,OAAO,CAAC,OAAO,CAAC,6BAA6B,EAAE,UAAC,MAAc,EAAE,EAAU;QAC/E,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAK,EAAE,OAAI,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC;AAED;IACE;;OAEG;IACH,mBACS,QAA8B,EAC9B,QAAgB,EAChB,SAAwB,EACvB,QAA0B;QAA1B,yBAAA,EAAA,0BAA0B;QAH3B,aAAQ,GAAR,QAAQ,CAAsB;QAC9B,aAAQ,GAAR,QAAQ,CAAQ;QAChB,cAAS,GAAT,SAAS,CAAe;QACvB,aAAQ,GAAR,QAAQ,CAAkB;IACjC,CAAC;IAEJ;;;;OAIG;IACI,kCAAc,GAArB,UAAyB,GAAW,EAAE,SAAa;QACjD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;OAMG;IACI,iCAAa,GAApB,UAAwB,aAAmC,EAAE,GAAW,EAAE,SAAa;QACrF,IAAM,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,gCAAY,GAApB,UAAwB,GAAW,EAAE,SAAa;QAChD,IAAM,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,CAAC,CAAC;SAC1C;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,oCAAgB,GAAxB,UAA4B,QAA8B,EAAE,GAAW,EAAE,SAAa;QACpF,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAM,YAAY,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAM,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;IACH,gBAAC;AAAD,CAAC,AArDD,IAqDC"}
1
+ {"version":3,"file":"localize.js","sourceRoot":"","sources":["../src/localize.ts"],"names":[],"mappings":"AAEA,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;IACpB;;OAEG;IACH,YACS,QAA8B,EAC9B,QAAgB,EAChB,SAAwB,EACvB,WAAW,eAAe;QAH3B,aAAQ,GAAR,QAAQ,CAAsB;QAC9B,aAAQ,GAAR,QAAQ,CAAQ;QAChB,cAAS,GAAT,SAAS,CAAe;QACvB,aAAQ,GAAR,QAAQ,CAAkB;IACjC,CAAC;IAEJ;;;;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,CAAC,CAAC;SAC1C;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 CHANGED
@@ -1,4 +1,5 @@
1
- import { ComponentType } from 'react';
1
+ import type { Disposable } from 'piral-core';
2
+ import type { ComponentType } from 'react';
2
3
  declare module 'piral-core/lib/types/custom' {
3
4
  interface PiletCustomApi extends PiletLocaleApi {
4
5
  }
@@ -97,8 +98,8 @@ export interface Localizable {
97
98
  messages: LocalizationMessages;
98
99
  language: string;
99
100
  languages: Array<string>;
100
- localizeGlobal<T>(key: string, variables?: T): string;
101
- localizeLocal<T>(localMessages: LocalizationMessages, key: string, variables?: T): string;
101
+ localizeGlobal<T extends object>(key: string, variables?: T): string;
102
+ localizeLocal<T extends object>(localMessages: LocalizationMessages, key: string, variables?: T): string;
102
103
  }
103
104
  export interface LocalizationMessages {
104
105
  /**
@@ -107,13 +108,32 @@ export interface LocalizationMessages {
107
108
  [lang: string]: Translations;
108
109
  }
109
110
  export interface PiletLocaleApi {
111
+ /**
112
+ * Adds a list of translations to the existing translations.
113
+ *
114
+ * Internally, setTranslations is used, which means the translations will be exclusively used for
115
+ * retrieving translations for the pilet.
116
+ *
117
+ * @param messagesList The list of messages that extend the existing translations
118
+ * @param [isOverriding=true] Indicates whether the new translations overwrite the existing translations
119
+ */
120
+ addTranslations(messagesList: LocalizationMessages[], isOverriding?: boolean): void;
121
+ /**
122
+ * Gets the currently selected language directly.
123
+ */
124
+ getCurrentLanguage(): string;
125
+ /**
126
+ * Gets the currently selected language in a callback that is also invoked when the
127
+ * selected language changes. Returns a disposable to stop the notifications.
128
+ */
129
+ getCurrentLanguage(cb: (currently: string) => void): Disposable;
110
130
  /**
111
131
  * Translates the given tag (using the optional variables) into a string using the current language.
112
132
  * The used template can contain placeholders in form of `{{variableName}}`.
113
133
  * @param tag The tag to translate.
114
134
  * @param variables The optional variables to fill into the temnplate.
115
135
  */
116
- translate<T = Record<string, string>>(tag: string, variables?: T): string;
136
+ translate<T extends object = Record<string, string>>(tag: string, variables?: T): string;
117
137
  /**
118
138
  * Provides translations to the application.
119
139
  * The translations will be exclusively used for retrieving translations for the pilet.
package/lib/Languages.js CHANGED
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Languages = void 0;
4
- var React = require("react");
5
- var piral_core_1 = require("piral-core");
6
- var components_1 = require("./components");
7
- exports.Languages = function () {
8
- var _a = piral_core_1.useGlobalState(function (m) { return m.language; }), available = _a.available, selected = _a.selected;
4
+ const React = require("react");
5
+ const piral_core_1 = require("piral-core");
6
+ const components_1 = require("./components");
7
+ const Languages = () => {
8
+ const { available, selected } = (0, piral_core_1.useGlobalState)((m) => m.language);
9
9
  return React.createElement(components_1.PiralLanguagesPicker, { selected: selected, available: available });
10
10
  };
11
+ exports.Languages = Languages;
11
12
  //# sourceMappingURL=Languages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Languages.js","sourceRoot":"","sources":["../src/Languages.tsx"],"names":[],"mappings":";;;AAAA,6BAA+B;AAC/B,yCAA4C;AAC5C,2CAAoD;AAEvC,QAAA,SAAS,GAAa;IAC3B,IAAA,KAA0B,2BAAc,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,QAAQ,EAAV,CAAU,CAAC,EAAzD,SAAS,eAAA,EAAE,QAAQ,cAAsC,CAAC;IAClE,OAAO,oBAAC,iCAAoB,IAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAI,CAAC;AAC5E,CAAC,CAAC"}
1
+ {"version":3,"file":"Languages.js","sourceRoot":"","sources":["../src/Languages.tsx"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,2CAA4C;AAC5C,6CAAoD;AAE7C,MAAM,SAAS,GAAa,GAAG,EAAE;IACtC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAA,2BAAc,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAClE,OAAO,oBAAC,iCAAoB,IAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAI,CAAC;AAC5E,CAAC,CAAC;AAHW,QAAA,SAAS,aAGpB"}
package/lib/actions.js CHANGED
@@ -1,46 +1,44 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createActions = void 0;
4
- var tslib_1 = require("tslib");
5
4
  function createActions(localizer) {
6
5
  return {
7
- selectLanguage: function (ctx, selected) {
8
- ctx.dispatch(function (state) {
6
+ selectLanguage(ctx, selected) {
7
+ ctx.dispatch((state) => {
9
8
  localizer.language = selected;
10
- var previousLanguage = state.language.selected;
11
- var currentLanguage = selected;
9
+ const previousLanguage = state.language.selected;
10
+ const currentLanguage = selected;
12
11
  // emit this event *after* we changed the state container
13
- setTimeout(function () {
12
+ setTimeout(() => {
14
13
  ctx.emit('select-language', {
15
- previousLanguage: previousLanguage,
16
- currentLanguage: currentLanguage,
14
+ previousLanguage,
15
+ currentLanguage,
17
16
  });
18
17
  }, 0);
19
- return tslib_1.__assign(tslib_1.__assign({}, state), { language: tslib_1.__assign(tslib_1.__assign({}, state.language), { loading: selected === undefined, selected: selected }) });
18
+ return Object.assign(Object.assign({}, state), { language: Object.assign(Object.assign({}, state.language), { loading: selected === undefined, selected }) });
20
19
  });
21
20
  },
22
- translate: function (_, key, variables) {
21
+ translate(_, key, variables) {
23
22
  return localizer && localizer.localizeGlobal(key, variables);
24
23
  },
25
- setTranslations: function (ctx, language, data) {
24
+ setTranslations(ctx, language, data) {
26
25
  localizer.messages[language] = data.global;
27
- for (var _i = 0, _a = data.locals; _i < _a.length; _i++) {
28
- var item = _a[_i];
29
- var api = ctx.apis[item.name];
26
+ for (const item of data.locals) {
27
+ const api = ctx.apis[item.name];
30
28
  if (api) {
31
- var translations = api.getTranslations();
29
+ const translations = api.getTranslations();
32
30
  translations[language] = item.value;
33
31
  api.setTranslations(translations);
34
32
  }
35
33
  }
36
34
  },
37
- getTranslations: function (ctx, language) {
35
+ getTranslations(ctx, language) {
38
36
  return {
39
37
  global: localizer.messages[language],
40
- locals: Object.keys(ctx.apis).map(function (name) { return ({
41
- name: name,
38
+ locals: Object.keys(ctx.apis).map((name) => ({
39
+ name,
42
40
  value: ctx.apis[name].getTranslations()[language],
43
- }); }),
41
+ })),
44
42
  };
45
43
  },
46
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":";;;;AAGA,SAAgB,aAAa,CAAC,SAAsB;IAClD,OAAO;QACL,cAAc,EAAd,UAAe,GAAuB,EAAE,QAAgB;YACtD,GAAG,CAAC,QAAQ,CAAC,UAAC,KAAK;gBACjB,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC9B,IAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACjD,IAAM,eAAe,GAAG,QAAQ,CAAC;gBAEjC,yDAAyD;gBACzD,UAAU,CAAC;oBACT,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE;wBAC1B,gBAAgB,kBAAA;wBAChB,eAAe,iBAAA;qBAChB,CAAC,CAAC;gBACL,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEN,6CACK,KAAK,KACR,QAAQ,wCACH,KAAK,CAAC,QAAQ,KACjB,OAAO,EAAE,QAAQ,KAAK,SAAS,EAC/B,QAAQ,UAAA,OAEV;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,SAAS,EAAT,UAAU,CAAqB,EAAE,GAAW,EAAE,SAAc;YAC1D,OAAO,SAAS,IAAI,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC/D,CAAC;QACD,eAAe,EAAf,UAAgB,GAAuB,EAAE,QAAgB,EAAE,IAAI;YAC7D,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAE3C,KAAmB,UAAW,EAAX,KAAA,IAAI,CAAC,MAAM,EAAX,cAAW,EAAX,IAAW,EAAE;gBAA3B,IAAM,IAAI,SAAA;gBACb,IAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEhC,IAAI,GAAG,EAAE;oBACP,IAAM,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,EAAf,UAAgB,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,UAAC,IAAI,IAAK,OAAA,CAAC;oBAC3C,IAAI,MAAA;oBACJ,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;iBAClD,CAAC,EAH0C,CAG1C,CAAC;aACJ,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AApDD,sCAoDC"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":";;;AAGA,SAAgB,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,uCACK,KAAK,KACR,QAAQ,kCACH,KAAK,CAAC,QAAQ,KACjB,OAAO,EAAE,QAAQ,KAAK,SAAS,EAC/B,QAAQ,OAEV;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;AApDD,sCAoDC"}