UNPKG

piral-translate

Version:

Plugin for providing translated messages in Piral.

2 lines (1 loc) • 5.95 kB
var piralTranslate=(()=>{var R=Object.create;var m=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var N=Object.getPrototypeOf,$=Object.prototype.hasOwnProperty;var c=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,a)=>(typeof require<"u"?require:t)[a]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var I=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),U=(e,t)=>{for(var a in t)m(e,a,{get:t[a],enumerable:!0})},T=(e,t,a,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of G(t))!$.call(e,r)&&r!==a&&m(e,r,{get:()=>t[r],enumerable:!(n=F(t,r))||n.enumerable});return e};var j=(e,t,a)=>(a=e!=null?R(N(e)):{},T(t||!e||!e.__esModule?m(a,"default",{value:e,enumerable:!0}):a,e)),D=e=>T(m({},"__esModule",{value:!0}),e);var z=I((pe,h)=>{"use strict";var B=function(t){return V(t)&&!K(t)};function V(e){return!!e&&typeof e=="object"}function K(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||q(e)}var Y=typeof Symbol=="function"&&Symbol.for,Z=Y?Symbol.for("react.element"):60103;function q(e){return e.$$typeof===Z}function H(e){return Array.isArray(e)?[]:{}}function u(e,t){return t.clone!==!1&&t.isMergeableObject(e)?g(H(e),e,t):e}function J(e,t,a){return e.concat(t).map(function(n){return u(n,a)})}function Q(e,t){if(!t.customMerge)return g;var a=t.customMerge(e);return typeof a=="function"?a:g}function W(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function x(e){return Object.keys(e).concat(W(e))}function A(e,t){try{return t in e}catch{return!1}}function X(e,t){return A(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function ee(e,t,a){var n={};return a.isMergeableObject(e)&&x(e).forEach(function(r){n[r]=u(e[r],a)}),x(t).forEach(function(r){X(e,r)||(A(e,r)&&a.isMergeableObject(t[r])?n[r]=Q(r,a)(e[r],t[r],a):n[r]=u(t[r],a))}),n}function g(e,t,a){a=a||{},a.arrayMerge=a.arrayMerge||J,a.isMergeableObject=a.isMergeableObject||B,a.cloneUnlessOtherwiseSpecified=u;var n=Array.isArray(t),r=Array.isArray(e),s=n===r;return s?n?a.arrayMerge(e,t,a):ee(e,t,a):u(t,a)}g.all=function(t,a){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(n,r){return g(n,r,a)},{})};var te=g;h.exports=te});var ue={};U(ue,{Languages:()=>ge,PiralLanguagesPicker:()=>M,createLocaleApi:()=>se,getUserLocale:()=>ie,setupLocalizer:()=>C,useDynamicLanguage:()=>le,useTranslate:()=>ce});var O=c("piral-core"),M=(0,O.getPiralComponent)("LanguagesPicker");var k=j(z());function P(e){return{selectLanguage(t,a){t.dispatch(n=>{e.language=a;let r=n.language.selected,s=a;return setTimeout(()=>{t.emit("select-language",{previousLanguage:r,currentLanguage:s})},0),{...n,language:{...n.language,loading:a===void 0,selected:a}}})},translate(t,a,n){return e&&e.localizeGlobal(a,n)},setTranslations(t,a,n){e.messages[a]=n.global;for(let r of n.locals){let s=t.apis[r.name];if(s){let o=s.getTranslations();o[a]=r.value,s.setTranslations(o)}}},getTranslations(t,a){return{global:e.messages[a],locals:Object.keys(t.apis).map(n=>({name:n,value:t.apis[n].getTranslations()[a]}))}}}}function ae(e){let t={};return S(e,t),t}function S(e,t,a=""){if(typeof e=="string"){t[a]=e;return}if(typeof e=="object"&&e!==null){Object.keys(e).forEach(n=>{S(e[n],t,a?`${a}.${n}`:n)});return}}function p(e){return Object.fromEntries(Object.entries(e).map(([t,a])=>[t,ae(a)]))}function ne(e,t){return t?"...":""}function re(e,t){return e.replace(/{{\s*([A-Za-z0-9_.]+)\s*}}/g,(a,n)=>n in t?t[n]??"":`{{${n}}}`)}var b=class{constructor(t,a,n=[a],r,s=ne){this.language=a;this.languages=n;this.fallbackLanguage=r;this.fallback=s;this.messages=p(t)}localizeGlobal(t,a){return this.localizeBase(t,a)}localizeLocal(t,a,n){let r=this.translateMessage(t,a,n);return r===void 0?this.localizeBase(a,n):r}localizeBase(t,a){let n=this.translateMessage(this.messages,t,a);return n===void 0?this.fallback(t,this.language,this.messages,a):n}translateMessage(t,a,n){let r=this.language,s=this.fallbackLanguage,o=r&&t[r],i=s&&t[s],l=o&&o[a]||i&&i[a];return l&&(n?re(l,n):l)}};var v=c("piral-core"),E=e=>(0,v.defaultRender)(void 0);function C(e={}){let t=e.messages||{},a=Object.keys(t),n=a[0]||"en",r=e.language,o=(typeof r=="function"?r(a,n,"en"):r)||n;return new b(t,o,a.length?a:[o],e.fallbackLanguage,e.fallback)}function se(e=C()){return t=>(t.defineActions(P(e)),t.dispatch(a=>({...a,components:{LanguagesPicker:E,...a.components},language:{loading:!1,available:e.languages,selected:e.language}})),a=>{let n={},r=s=>{n=p(s)};return{addTranslations(s,o=!0){let i=e.messages;r(k.all(o?[i,...s]:[...s,i]))},getCurrentLanguage(s){let o=t.readState(i=>i.language.selected);if(s){s(o);let i=l=>{s(l.currentLanguage)};return a.on("select-language",i),()=>a.off("select-language",i)}return o},setTranslations:r,getTranslations(){return n},translate(s,o){return e.localizeLocal(n,s,o)}}})}var L=c("piral-core");function oe(e,t){let a=L.cookie.getItem("_culture")||L.storage.getItem("locale");return a||(t?t.toLowerCase().substring(0,2):navigator.language?navigator.language.substring(0,2):e)}function ie(e,t,a){let n=oe(t,a||"");return e.indexOf(n)!==-1?n:t}var d=c("react"),f=c("piral-core");function le(e,t){let[a,n]=(0,d.useState)(e),{selectLanguage:r,setTranslations:s,getTranslations:o}=(0,f.useActions)();return(0,d.useEffect)(()=>{let i=!0,l=o(a);return r(void 0),t(a,l).then(y=>{i&&(s(a,y),r(a))},y=>console.error(y)),()=>{i=!1}},[a]),[a,n]}function ce(){let{translate:e}=(0,f.useActions)();return(0,f.useGlobalState)(t=>t.language.selected),e}var _=j(c("react")),w=c("piral-core");var ge=()=>{let{available:e,selected:t}=(0,w.useGlobalState)(a=>a.language);return _.createElement(M,{selected:t,available:e})};return D(ue);})();