piral-translate 0.15.11 → 0.15.12-beta.5531
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/esm/localize.d.ts +2 -2
- package/esm/localize.js.map +1 -1
- package/esm/types.d.ts +3 -3
- package/lib/localize.d.ts +2 -2
- package/lib/localize.js.map +1 -1
- package/lib/types.d.ts +3 -3
- package/package.json +3 -3
- package/piral-translate.min.js +1 -1
- package/src/localize.ts +5 -5
- package/src/types.ts +3 -3
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.map
CHANGED
|
@@ -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,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,
|
|
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
|
@@ -98,8 +98,8 @@ export interface Localizable {
|
|
|
98
98
|
messages: LocalizationMessages;
|
|
99
99
|
language: string;
|
|
100
100
|
languages: Array<string>;
|
|
101
|
-
localizeGlobal<T>(key: string, variables?: T): string;
|
|
102
|
-
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;
|
|
103
103
|
}
|
|
104
104
|
export interface LocalizationMessages {
|
|
105
105
|
/**
|
|
@@ -133,7 +133,7 @@ export interface PiletLocaleApi {
|
|
|
133
133
|
* @param tag The tag to translate.
|
|
134
134
|
* @param variables The optional variables to fill into the temnplate.
|
|
135
135
|
*/
|
|
136
|
-
translate<T = Record<string, string>>(tag: string, variables?: T): string;
|
|
136
|
+
translate<T extends object = Record<string, string>>(tag: string, variables?: T): string;
|
|
137
137
|
/**
|
|
138
138
|
* Provides translations to the application.
|
|
139
139
|
* The translations will be exclusively used for retrieving translations for the pilet.
|
package/lib/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/lib/localize.js.map
CHANGED
|
@@ -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,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,
|
|
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,MAAa,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;AArDD,8BAqDC"}
|
package/lib/types.d.ts
CHANGED
|
@@ -98,8 +98,8 @@ export interface Localizable {
|
|
|
98
98
|
messages: LocalizationMessages;
|
|
99
99
|
language: string;
|
|
100
100
|
languages: Array<string>;
|
|
101
|
-
localizeGlobal<T>(key: string, variables?: T): string;
|
|
102
|
-
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;
|
|
103
103
|
}
|
|
104
104
|
export interface LocalizationMessages {
|
|
105
105
|
/**
|
|
@@ -133,7 +133,7 @@ export interface PiletLocaleApi {
|
|
|
133
133
|
* @param tag The tag to translate.
|
|
134
134
|
* @param variables The optional variables to fill into the temnplate.
|
|
135
135
|
*/
|
|
136
|
-
translate<T = Record<string, string>>(tag: string, variables?: T): string;
|
|
136
|
+
translate<T extends object = Record<string, string>>(tag: string, variables?: T): string;
|
|
137
137
|
/**
|
|
138
138
|
* Provides translations to the application.
|
|
139
139
|
* The translations will be exclusively used for retrieving translations for the pilet.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "piral-translate",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.12-beta.5531",
|
|
4
4
|
"description": "Plugin for providing translated messages in Piral.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"piral",
|
|
@@ -68,12 +68,12 @@
|
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"@types/deepmerge": "^2.2.0",
|
|
70
70
|
"@types/react": "^18.0.0",
|
|
71
|
-
"piral-core": "
|
|
71
|
+
"piral-core": "0.15.12-beta.5531",
|
|
72
72
|
"react": "^18.0.0"
|
|
73
73
|
},
|
|
74
74
|
"peerDependencies": {
|
|
75
75
|
"piral-core": "0.14.x || 0.15.x",
|
|
76
76
|
"react": ">=16.8.0"
|
|
77
77
|
},
|
|
78
|
-
"gitHead": "
|
|
78
|
+
"gitHead": "e305bf2bdfa60d6325a7db20f550b58dabdea245"
|
|
79
79
|
}
|
package/piral-translate.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var piralTranslate=(()=>{var F=Object.create;var u=Object.defineProperty,U=Object.defineProperties,$=Object.getOwnPropertyDescriptor,D=Object.getOwnPropertyDescriptors,N=Object.getOwnPropertyNames,
|
|
1
|
+
var piralTranslate=(()=>{var F=Object.create;var u=Object.defineProperty,U=Object.defineProperties,$=Object.getOwnPropertyDescriptor,D=Object.getOwnPropertyDescriptors,N=Object.getOwnPropertyNames,x=Object.getOwnPropertySymbols,B=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable;var O=(e,t,r)=>t in e?u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,c=(e,t)=>{for(var r in t||(t={}))h.call(t,r)&&O(e,r,t[r]);if(x)for(var r of x(t))V.call(t,r)&&O(e,r,t[r]);return e},f=(e,t)=>U(e,D(t)),j=e=>u(e,"__esModule",{value:!0});var l=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,r)=>(typeof require!="undefined"?require:t)[r]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var K=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Y=(e,t)=>{j(e);for(var r in t)u(e,r,{get:t[r],enumerable:!0})},Z=(e,t,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of N(t))!h.call(e,a)&&a!=="default"&&u(e,a,{get:()=>t[a],enumerable:!(r=$(t,a))||r.enumerable});return e},i=e=>Z(j(u(e!=null?F(B(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var z=K((ye,v)=>{"use strict";var q=function(t){return H(t)&&!J(t)};function H(e){return!!e&&typeof e=="object"}function J(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||X(e)}var Q=typeof Symbol=="function"&&Symbol.for,W=Q?Symbol.for("react.element"):60103;function X(e){return e.$$typeof===W}function ee(e){return Array.isArray(e)?[]:{}}function p(e,t){return t.clone!==!1&&t.isMergeableObject(e)?g(ee(e),e,t):e}function te(e,t,r){return e.concat(t).map(function(a){return p(a,r)})}function re(e,t){if(!t.customMerge)return g;var r=t.customMerge(e);return typeof r=="function"?r:g}function ae(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return e.propertyIsEnumerable(t)}):[]}function A(e){return Object.keys(e).concat(ae(e))}function S(e,t){try{return t in e}catch{return!1}}function ne(e,t){return S(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function se(e,t,r){var a={};return r.isMergeableObject(e)&&A(e).forEach(function(n){a[n]=p(e[n],r)}),A(t).forEach(function(n){ne(e,n)||(S(e,n)&&r.isMergeableObject(t[n])?a[n]=re(n,r)(e[n],t[n],r):a[n]=p(t[n],r))}),a}function g(e,t,r){r=r||{},r.arrayMerge=r.arrayMerge||te,r.isMergeableObject=r.isMergeableObject||q,r.cloneUnlessOtherwiseSpecified=p;var a=Array.isArray(t),n=Array.isArray(e),s=a===n;return s?a?r.arrayMerge(e,t,r):se(e,t,r):p(t,r)}g.all=function(t,r){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(a,n){return g(a,n,r)},{})};var oe=g;v.exports=oe});var be={};Y(be,{Languages:()=>me,PiralLanguagesPicker:()=>T,createLocaleApi:()=>ce,getUserLocale:()=>ue,setupLocalizer:()=>w,useDynamicLanguage:()=>fe,useTranslate:()=>pe});var P=i(l("piral-core")),T=(0,P.getPiralComponent)("LanguagesPicker");var k=i(z());function E(e){return{selectLanguage(t,r){t.dispatch(a=>{e.language=r;let n=a.language.selected,s=r;return setTimeout(()=>{t.emit("select-language",{previousLanguage:n,currentLanguage:s})},0),f(c({},a),{language:f(c({},a.language),{loading:r===void 0,selected:r})})})},translate(t,r,a){return e&&e.localizeGlobal(r,a)},setTranslations(t,r,a){e.messages[r]=a.global;for(let n of a.locals){let s=t.apis[n.name];if(s){let o=s.getTranslations();o[r]=n.value,s.setTranslations(o)}}},getTranslations(t,r){return{global:e.messages[r],locals:Object.keys(t.apis).map(a=>({name:a,value:t.apis[a].getTranslations()[r]}))}}}}function ie(e,t){return t?"...":""}function le(e,t){return e.replace(/{{\s*([A-Za-z0-9_.]+)\s*}}/g,(r,a)=>a in t?t[a]||"":`{{${a}}}`)}var M=class{constructor(t,r,a,n=ie){this.messages=t;this.language=r;this.languages=a;this.fallback=n}localizeGlobal(t,r){return this.localizeBase(t,r)}localizeLocal(t,r,a){let n=this.translateMessage(t,r,a);return n===void 0?this.localizeBase(r,a):n}localizeBase(t,r){let a=this.translateMessage(this.messages,t,r);return a===void 0?this.fallback(t,this.language):a}translateMessage(t,r,a){let n=this.language,s=n&&t[n],o=s&&s[r];return o&&(a?le(o,a):o)}};var C=i(l("piral-core")),_=e=>(0,C.defaultRender)(void 0);function w(e={}){let t=e.messages||{},r=Object.keys(t),a=r[0]||"en",n=e.language,o=(typeof n=="function"?n(r,a,"en"):n)||a;return new M(t,o,r.length?r:[o],e.fallback)}function ce(e=w()){return t=>(t.defineActions(E(e)),t.dispatch(r=>f(c({},r),{components:c({LanguagesPicker:_},r.components),language:{loading:!1,available:e.languages,selected:e.language}})),r=>{let a={};return{addTranslations(n,s=!0){let o=n;s?o.unshift(e.messages):o.push(e.messages),this.setTranslations(k.all(o))},getCurrentLanguage(n){let s=t.readState(o=>o.language.selected);if(n){n(s);let o=b=>{n(b.currentLanguage)};return r.on("select-language",o),()=>r.off("select-language",o)}return s},setTranslations(n){a=n},getTranslations(){return a},translate(n,s){return e.localizeLocal(a,n,s)}}})}var d=i(l("piral-core"));function ge(e,t){let r=d.cookie.getItem("_culture")||d.storage.getItem("locale");return r||(t?t.toLowerCase().substring(0,2):navigator.language?navigator.language.substring(0,2):e)}function ue(e,t,r){let a=ge(t,r||"");return e.indexOf(a)!==-1?a:t}var L=i(l("react")),m=i(l("piral-core"));function fe(e,t){let[r,a]=(0,L.useState)(e),{selectLanguage:n,setTranslations:s,getTranslations:o}=(0,m.useActions)();return(0,L.useEffect)(()=>{let b=!0,R=o(r);return n(void 0),t(r,R).then(y=>{b&&(s(r,y),n(r))},y=>console.error(y)),()=>{b=!1}},[r]),[r,a]}function pe(){let{translate:e}=(0,m.useActions)();return(0,m.useGlobalState)(t=>t.language.selected),e}var G=i(l("react")),I=i(l("piral-core"));var me=()=>{let{available:e,selected:t}=(0,I.useGlobalState)(r=>r.language);return G.createElement(T,{selected:t,available:e})};return be;})();
|
package/src/localize.ts
CHANGED
|
@@ -13,7 +13,7 @@ function defaultFallback(key: string, language: string): string {
|
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
function formatMessage<T>(message: string, variables: T): string {
|
|
16
|
+
function formatMessage<T extends object>(message: string, variables: T): string {
|
|
17
17
|
return message.replace(/{{\s*([A-Za-z0-9_.]+)\s*}}/g, (_match: string, p1: string) => {
|
|
18
18
|
return p1 in variables ? variables[p1] || '' : `{{${p1}}}`;
|
|
19
19
|
});
|
|
@@ -35,7 +35,7 @@ export class Localizer implements Localizable {
|
|
|
35
35
|
* @param key The key of the translation snippet.
|
|
36
36
|
* @param variables The optional variables to use.
|
|
37
37
|
*/
|
|
38
|
-
public localizeGlobal<T>(key: string, variables?: T) {
|
|
38
|
+
public localizeGlobal<T extends object>(key: string, variables?: T) {
|
|
39
39
|
return this.localizeBase(key, variables);
|
|
40
40
|
}
|
|
41
41
|
|
|
@@ -46,7 +46,7 @@ export class Localizer implements Localizable {
|
|
|
46
46
|
* @param key The key of the translation snippet.
|
|
47
47
|
* @param variables The optional variables to use.
|
|
48
48
|
*/
|
|
49
|
-
public localizeLocal<T>(localMessages: LocalizationMessages, key: string, variables?: T) {
|
|
49
|
+
public localizeLocal<T extends object>(localMessages: LocalizationMessages, key: string, variables?: T) {
|
|
50
50
|
const message = this.translateMessage(localMessages, key, variables);
|
|
51
51
|
|
|
52
52
|
if (message === undefined) {
|
|
@@ -56,7 +56,7 @@ export class Localizer implements Localizable {
|
|
|
56
56
|
return message;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
private localizeBase<T>(key: string, variables?: T) {
|
|
59
|
+
private localizeBase<T extends object>(key: string, variables?: T) {
|
|
60
60
|
const message = this.translateMessage(this.messages, key, variables);
|
|
61
61
|
|
|
62
62
|
if (message === undefined) {
|
|
@@ -66,7 +66,7 @@ export class Localizer implements Localizable {
|
|
|
66
66
|
return message;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
private translateMessage<T>(messages: LocalizationMessages, key: string, variables?: T) {
|
|
69
|
+
private translateMessage<T extends object>(messages: LocalizationMessages, key: string, variables?: T) {
|
|
70
70
|
const language = this.language;
|
|
71
71
|
const translations = language && messages[language];
|
|
72
72
|
const translation = translations && translations[key];
|
package/src/types.ts
CHANGED
|
@@ -108,8 +108,8 @@ export interface Localizable {
|
|
|
108
108
|
messages: LocalizationMessages;
|
|
109
109
|
language: string;
|
|
110
110
|
languages: Array<string>;
|
|
111
|
-
localizeGlobal<T>(key: string, variables?: T): string;
|
|
112
|
-
localizeLocal<T>(localMessages: LocalizationMessages, key: string, variables?: T): string;
|
|
111
|
+
localizeGlobal<T extends object>(key: string, variables?: T): string;
|
|
112
|
+
localizeLocal<T extends object>(localMessages: LocalizationMessages, key: string, variables?: T): string;
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
export interface LocalizationMessages {
|
|
@@ -145,7 +145,7 @@ export interface PiletLocaleApi {
|
|
|
145
145
|
* @param tag The tag to translate.
|
|
146
146
|
* @param variables The optional variables to fill into the temnplate.
|
|
147
147
|
*/
|
|
148
|
-
translate<T = Record<string, string>>(tag: string, variables?: T): string;
|
|
148
|
+
translate<T extends object = Record<string, string>>(tag: string, variables?: T): string;
|
|
149
149
|
/**
|
|
150
150
|
* Provides translations to the application.
|
|
151
151
|
* The translations will be exclusively used for retrieving translations for the pilet.
|